git: How to ignore changes to a file when committing?
我确实在寻找解决方案,但我相信我的处境与我读到的有些不同。
我正在处理一个特定的分支,犯了一个错误,以一种与分支主题无关的方式编辑了一个文件,现在我希望这些更改不会使其进入提交状态。我不想丢失这些更改,因为稍后我将尝试以某种方式在另一个分支上提交它们。
我试过
如果您不准备这些更改,它们将不会成为提交的一部分,如下所示:
1 2 3 4 5 6 7 | git status # On branch development # Changes not staged for commit: # (use"git add <file>..." to update what will be committed) # (use"git checkout -- <file>..." to discard changes in working directory) # # modified: ResearchProposal.tex |
号
在这里,
如果在一个文件中有两组更改,一组是您想要提交的,另一组是您不想提交的,请阅读本文。
如果您在一个不想提交的文件上运行
1 | git reset HEAD <file> |
这样地:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | $ git add ResearchProposal.tex $ git status # On branch development # Changes to be committed: # (use"git reset HEAD <file>..." to unstage) # # modified: ResearchProposal.tex $ git reset HEAD ResearchProposal.tex Unstaged changes after reset: M ResearchProposal.tex $ git status # On branch development # Changes not staged for commit: # (use"git add <file>..." to update what will be committed) # (use"git checkout -- <file>..." to discard changes in working directory) # # modified: ResearchProposal.tex |
。
在终端中运行以下命令:
1 | git update-index --assume-unchanged |
要使git再次跟踪文件,只需运行:
1 | git update-index --no-assume-unchanged path/to/file.txt |
。
可能的解决方案之一:
1 2 3 4 5 6 7 8 | git stash git checkout git stash apply git add <one-file> git commit git stash git checkout <original-branch> git stash apply |