在git中,是否有任何(简单)的方式来修改索引,以便只添加已经在其中的文件的更改?这听起来很复杂,但我想实现的很简单。刷新分段文件
比方说我的指数看起来像这样(略剥离git status
输出):
# Changes to be committed:
# modified: A
# modified: B
#
# Changed but not updated:
# modified: B
# modified: C
#
# Untracked files:
# D
一些变化B
在索引中,有些则不是。 C
根本没有上演。
如何在不添加C
的情况下更新索引中的B
(阶段未分级更改)?
I.e.我想该指数将是这样的:
# Changes to be committed:
# modified: A
# modified: B
#
# Changed but not updated:
# modified: C
#
# Untracked files:
# D
在它当然可以用一个简单的git add B
实现这个简单的例子,但我想知道是否有针对一般情况下一个简单的答案。我试过git add --refresh
,但是如果我理解正确,那只会更新统计信息。
你能告诉一个真正的用例你想这么做?我无法想象任何(当我添加一个文件,而不是更改它时,它并不意味着我会想要添加这些更改,特别是当我不想在其他文件中添加更改时)。 – 2012-04-04 08:34:32
@JanHudec我可能不会需要这个,如果我更严格,只接触那些应该在提交('B')中进行的文件。然而,有时候我会被带走并开始进行新的提交('C')的更改,所以我在索引中添加了'B'。在提交之前,我总是检查diff - 缓存,有时候会用'B'清理一些东西。那时候我需要这个。我想这可能可以通过另一种方式解决,比如隐藏 – axelarge 2012-04-04 09:09:35
我的观点是,当你正在执行文件'X'中的某些内容时,应该提交'B'并将其带走并做出应该提交的更改'C',其中一些变化通常是再次提交'X'。在这种情况下,您想要手动添加-i个人区块,而不是仅添加文件“X”。显然,如果你被带走了,你可能会注意到你正在改变的一点,这就是为什么额外的改变不会触及第一组文件所做的文件。 – 2012-04-04 09:39:08