在git中,是否有任何(简单的)方法可以修改索引(index),以便只添加已经存在于索引中的文件的更改?这听起来有点复杂,但我想要实现的很简单。
假设我的索引看起来像这样(稍微削弱了
假设我的索引看起来像这样(稍微削弱了
git status
输出):# Changes to be committed:
# modified: A
# modified: B
#
# Changed but not updated:
# modified: B
# modified: C
#
# Untracked files:
# D
一些对 B
的更改已经在索引中了, 但有一些并没有。
C
根本没有被暂存。
我该如何更新索引中的 B
(暂存它未暂存的更改),而不添加 C
?
也就是说,我希望索引看起来像这样:
# Changes to be committed:
# modified: A
# modified: B
#
# Changed but not updated:
# modified: C
#
# Untracked files:
# D
在这种简单的情况下,可以通过简单的git add B
实现,但我想知道通用情况下是否有简单的答案。我尝试过git add --refresh
,但如果我理解正确,那只会更新stat信息。
B
)中去的文件,我可能就不需要这个了。然而有时候我会有些冲动,开始做一些应该在新的提交(C
)中的修改,所以我会将B
添加到索引中。在提交之前,我总是会审查 diff --cached,并且有时会清理掉B
中的某些内容。那么这就是我需要这个工具的时候。我猜也许可以用另一种方法来解决这个问题,比如使用 stash。 - axelargeX
中做一些应该放在提交B
中的事情,并且被带走并进行了应该放在提交C
中的更改时,其中一些更改通常又会涉及到文件X
。在这种情况下,您需要手动添加-i个别块,而不仅仅是重新添加文件X
。显然,如果你被带走了,你可能会注意到你正在改变的点周围的某些东西,这就是为什么额外的更改不太可能不涉及第一组所涉及的文件的原因。 - Jan Hudec