我确实在搜索解决方案,但我相信我的情况与我读到的情况略有不同。
我正在一个特定的分支上工作并犯了一个错误,以一种与分支主题无关的方式编辑了一个文件,现在希望这些更改不会进入提交。我不想丢失这些更改,因为我会稍后尝试将它们提交到另一个分支上。
我尝试了git rm --cached
,但后来我在deleted
中看到了状态git status
- 文件是否会从存储库中移除?我不希望这样 - 我希望它在我工作分支的先前提交中保持不变。
答案 0 :(得分:8)
如果您不进行更改,它们将不会成为提交的一部分,如下所示:
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
此处ResearchProposal.tex
有更改,但git commit
不会提交。
如果您在一个文件中有两组更改,有些是您要提交的,另一些是您不提交的,请阅读this。
如果您对不想提交的文件运行git add
,则需要unstage
:
git reset HEAD <file>
像这样:
$ 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 :(得分:5)
在终端中运行以下命令:
git update-index --assume-unchanged
要让Git再次跟踪文件,只需运行:
git update-index --no-assume-unchanged path/to/file.txt
答案 2 :(得分:1)
可能的解决方案之一:
git stash
git checkout <another-branch>
git stash apply
git add <one-file>
git commit
git stash
git checkout <original-branch>
git stash apply