2012-09-30 57 views
2
make changes 
git commit 'made changes' -a 
git push origin 
make more changes 
git ammend -a 
git push origin 

我注意到,當我做git commit --ammend -a,然後嘗試推到一個遠程回購,它需要我強制推(git push -f)。做git修改需要一個git push -f?

我的猜測是因爲它試圖推動相同的(?什麼字?)提交代碼,但注意到文件的差異。

這是正確的嗎?

+1

沒有'git modify'命令;你指的是'git commit --amend'嗎? –

+0

@MarcoLeogrande謝謝你的改變,我已經習慣了我的別名'> _ <' –

+1

有點偏離主題,但我認爲在你提交了一個提交之後,對該提交做一個修改是一個壞主意。你的提交就在那裏。接受。創建一個新的提交,其中包含您忘記放在原始文件中的更改。然後推這個。 –

回答

7

A git commit --amendgit commit --author=<author>,如果有任何修改,將生成不同的SHA1。
然後,是的,git push -f將需要。

git amend可以在該blog post被定義爲一個別名等:

git config --global alias.amend 'commit --amend -C HEAD' 

此別名添加git amend命令,將重新使用當前時修改它提交消息。

+1

另請參閱以獲取更多信息:http://stackoverflow.com/a/10728453/6309。小心git push -f'雖然危險;)http://stackoverflow.com/questions/253055/how-do-i-push-amended-commit-to-the-remote-git-repo – VonC

+0

THanks @VonC就像我懷疑的一樣。那麼是否有任何方法可以繞過這個問題,或者知道忽視它是否安全? (我可以認爲拉本地和'git diff'?) –

+0

@iight忽略'push -f'?如果你想推回一個*修改的*提交(即,由於修改後的元數據信息,具有不同的SHA1的相同內容),你將無法做到這一點。 – VonC

相關問題