我在一个变更集中有一堆文件,但我想特别忽略一个修改过的文件。在git状态后看起来如下:
# modified: main/dontcheckmein.txt
# deleted: main/plzcheckmein.c
# deleted: main/plzcheckmein2.c
...
有没有一种方法可以让我添加git,但忽略我不想触摸的一个文本文件?类似于:
git add -u -except main/dontcheckmein.txt
我在一个变更集中有一堆文件,但我想特别忽略一个修改过的文件。在git状态后看起来如下:
# modified: main/dontcheckmein.txt
# deleted: main/plzcheckmein.c
# deleted: main/plzcheckmein2.c
...
有没有一种方法可以让我添加git,但忽略我不想触摸的一个文本文件?类似于:
git add -u -except main/dontcheckmein.txt
当前回答
我们可以添加所有文件,并排除必须通过git reset删除的文件。
git add .
git reset -- <file_name_to_exclude>
其他回答
对于文件
git add -u
git reset -- main/dontcheckmein.txt
对于文件夹
git add -u
git reset -- main/*
如果每次有三个有效的解决方案不涉及.gitignore时都要忽略特定的文件。
将要忽略的文件添加到.git/info/exclude。它的工作方式与.gitignore类似,只是配置特定于您的计算机。使用预提交git钩子重置您想要的文件。例如:$echo'git重置--src/main/resources/log4j.财产'>>.git/hooks/pre-commit$chmod+x.git/hooks/预提交预提交钩子就在提交之前运行。因此,您的文件可以在每次提交前自动重置。$git状态在分支机构CHANGE-137-notifications-support。。。未暂存用于提交的更改:修改:Dockerfile修改:src/main/resources/log4j.properties$git添加。$git状态在分支机构CHANGE-137-notifications-support。。。要提交的更改:修改:Dockerfile修改:src/main/resources/log4j.properties$gitcommit-m“微不足道的变化”重置后未分级的更改:M src/main/resources/log4j.属性[CHANGE-137-notifications-support 97cfb3f]微不足道的变化1个文件已更改,3个插入(+)第三种方法是更新特定文件的索引。$git update-index--假定更改了src/main/resources/log4j.properties
Git为要排除的路径提供:(exclude)pathspec前缀。
它的简短魔法签名是:^。文档:https://git-scm.com/docs/gitglossary#Documentation/gitglossary.txt-排除,排除
git add . :^main/dontcheckmein.txt
这条线索的一些答案提到:!,这也适用,但仅适用于引号。一般来说被认为是外壳扩展的可怕特性。
如果你和我一样,请在git add命令中使用-p标志-:^魔术签名也很有魅力:
git add -p . :^main/dontcheckmein.txt
我们可以添加所有文件,并排除必须通过git reset删除的文件。
git add .
git reset -- <file_name_to_exclude>
试试看:
git checkout -- main/dontcheckmein.txt