我已经搜索了解决方案,但我认为我的情况与我读到的那些略有不同。
我正在处理一个特定分支,犯了一个错误,编辑了一个与分支主题无关的文件,现在希望这些更改不会进入提交。 我不想丢失这些更改,因为我将尝试在另一个分支上提交它们,无论如何都要提交。
我尝试过使用git rm --cached
,但是然后我在git status
中看到删除
状态 - 文件将从存储库中删除吗? 我不希望这样 - 我希望它与在我的工作分支上先前提交时保持不变。
如果您不将更改放入暂存区,它们将不会成为提交的一部分,就像这样:
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
提交。
如果你在单个文件中有两组更改,其中一些你想要提交,而另一些则不需要,请阅读此内容。
如果您已经使用git add
命令添加了一个您不想提交的文件,则需要执行取消暂存
操作:
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
add
命令,或者是其他原因。所以我猜现在我需要想办法让它出现在“未暂存的更改”列表中,这正是我想要的,对吧? - Armen Michaeligit reset <file>
命令来取消暂存文件,或者使用 git reset .
命令来取消暂存所有文件,使用 git add -p
命令来选择性地暂存文件。 - user229044在终端中运行以下命令:
git update-index --assume-unchanged
git update-index --no-assume-unchanged path/to/file.txt
git stash
git checkout <another-branch>
git stash apply
git add <one-file>
git commit
git stash
git checkout <original-branch>
git stash apply
git stash
只存储单个文件?我不需要存储整个工作目录,只需要一个文件。 - Armen Michaeli
git add .
或git commit -a
吗?停止使用它们,开始每次都使用git add -p
。 - user229044