2016-11-09 98 views
83

有時在我做了一個提交後,我發現我遺漏了一個文件,該文件也應該包含在提交中,但實際上沒有。我經常做的是再次提交。如何將文件添加到最後一次提交的git的?

git add the_left_out_file 
git commit "include the file which should be added in the last commit" 

我認爲這可能不是一個好主意,這樣做,我想要做的就是包括不添加提交文件。類似這樣的,

git add the_left_out_file 
git add_staged_files_to_previous_commit 

這可能嗎?

+0

也是,另一種解釋相同:http://stackoverflow.com/questions/26050327/how-does-git-commit-amend-work-exactly – quetzalcoatl

回答

175

是的,有一個命令git commit --amend用於「修復」上次提交。

在你的情況下,它會被稱爲:

git add the_left_out_file 
git commit --amend --no-edit 

的--no-編輯標記允許進行修改而不改變提交信息提交。

編輯:警告 你不應該修改公共提交,你已經推送到公共倉庫,因爲什麼修改呢實際上是從歷史記錄中刪除最後提交和創造新的與來自提交和新添加時聯合變化承諾修正。

+0

我想你已經測試過。下次我肯定會嘗試這個解決方案。謝謝 –

+1

我在@ konrad-zeguis的答案*中看到了編輯*做完提交之後......'git commit --amend --no-edit'如何撤消? – emagar

+0

我也做了同樣的事情@emagar –

4

如果你沒有在遠程推送更新,那麼簡單的解決方案是使用以下命令刪除最後一個本地提交:git reset HEAD^。然後添加所有文件並再次提交。

相關問題