2014-04-22 44 views
17

我經常跑爲什麼git在我重寫最後一個提交消息時會打電話給我「聰明」?

git commit --only --amend 

來改寫的最新提交信息提交我做了。無論我的工作目錄是否乾淨,這都可以工作。

今天,我發現這樣做的時候,寫作的默認說明犯我core.editor包括以下注釋中顯示的消息:

# Clever... amending the last one with dirty index. 

除了有一點點的復活節彩蛋的魅力吧,什麼這條消息應該告訴我嗎?這是否是一種諷刺性的說法,我應該小心處理之前的提交(特別是如果存在暫存/非暫存更改)? 即使我的工作目錄是乾淨的,爲什麼會出現?

+3

@gwho HAHA ...我知道'git'能夠做很多事情,但是進入我的褲子並不會! ;) – itsjeyd

+0

這是一隻GIGANTIC復活節彩蛋......也是在復活節的時候! 'git grep -l「聰明......修改[Git repo](https://github.com/git/git)克隆中的最後一個髒索引」':出現在[''builtin/commit。 c'](https://github.com/git/git/blob/master/builtin/commit.c#L1129)和'contrib/examples/git-commit.sh',以及看起來像一些翻譯文件爲其他語言。 –

+0

['contrib/examples/git-commit.sh']的行(https://github.com/git/git/blob/master/contrib/examples/git-commit.sh#L279)。 –

回答

8

我認爲這可能是原始的提交信息:

git-commit --amend: two fixes. 

When running "git commit --amend" only to fix the commit log 
message without any content change, we mistakenly showed the 
git-status output that says "nothing to commit" without 
commenting it out. 

If you have already run update-index but you want to amend the 
top commit, "git commit --amend --only" without any paths should 
have worked, because --only means "starting from the base 
commit, update-index these paths only to prepare the index to 
commit, and perform the commit". However, we refused -o without 
paths. 

Signed-off-by: Junio C Hamano <[email protected]> 

我不是很精通的git,但對我來說它看起來像一個真正的恭維爲 周圍的髒指數獲得通過--only沒有路徑

+0

+1有趣。沒有暗示作者認爲在索引很髒的時候重新提交提交消息是一個壞主意! :)沒有解釋爲什麼人們希望消息顯示一個乾淨的工作目錄,雖然... – itsjeyd

+2

爲了避免額外的邏輯,我假設。相關的代碼似乎主要集中在解析給定的參數,所以我可以看到爲什麼你不想檢查索引是否真的很髒...... – monocell

相關問題