在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