我已經編輯了我的倉庫中的一些文件並推送它們。
經過一些其他的工作,我注意到我保持一條線評論。
所以,我不想爲它創建一個新的提交,我想在之前的提交(不是最後一個提交)中更改它。
我認爲我可以使用提交ID,但我不知道如何或可能Git不容忍此功能。
如何在特定的提交上將修改的提交推送到遠程git倉庫
回答
您可以在交互模式做一個變基:
git rebase -i HEAD~10
Git會提示您提交的名單,與最早的第一個顯示出來:
...
pick ab89k22 Old commit
pick ml9826x Another old commit
pick xke82ml This is the commit you want to edit
pick aow82md Here is your latest commit
查找提交你想要編輯,並將pick
更改爲edit
:
edit xke82ml This is the commit you want to edit
然後保存文件並退出。 Git現在將開始rebase,並將停止在您想要編輯的提交,允許您進行更改。一旦您完成這些改變,你可以爲你modiifed每種文件類型
git add path/to/file
,然後鍵入
git rebase --continue
完成重訂。
請注意,在您的本地分支上編輯此提交時,您已有效地將重寫爲歷史記錄。這意味着,當你推到遠程,你將不得不力分支出來,在你git push
命令使用--force
:
git push origin master --force
警惕的是重寫遠程歷史可能是危險取決於誰也與你分享這個分支。
如果你不要想重寫遠程歷史記錄,那麼更安全的賭注是將新的提交添加到你的分支。您也可以使用git revert
刪除有問題的提交,然後添加要保留的更改。
對不起我現在更新。 –
當我完成我的更改後執行「git rebase --continue」。 Git說「工作樹很髒」,並顯示我的文件,顯示「需要更新」 –
您需要添加已更改的文件,就像您通常在工作時一樣。不知道你是否也需要提交。 –
不要!
正如Tim指出的:重寫遠程歷史是危險的。
只要承認你犯了一個錯誤(並沒有推動它前徹底測試你的代碼),修復自己的錯誤,並使與消息
amend <COMMIT_HASH_YOU_WANT_TO_FIX>
一個新的提交如果您在使用一個不錯的歷史查看器,它會生成一個鏈接出<COMMIT_HASH_YOU_WANT_TO_FIX>
,所以你可以很容易地跳到錯誤的提交。
- 1. 如何修改或刪除遠程git倉庫提交?
- 2. 如何在TortoiseGit中自動推送提交到遠程倉庫?
- 3. 的Git - 拒絕遠程倉庫提交
- 4. Git - 將未提交的更改推送到以前的提交
- 5. 將修改提交推送到遠程時出錯
- 6. Git倉庫提交
- 7. 如何將更正的提交推送到遠程存儲庫?
- 8. Git推送並提交遠程混淆?
- 9. 如何「撤消」推送到遠程Bonobo Git Server的提交?
- 10. GIT推送不向遠程提交提交
- 11. 提交歷史上遠程倉庫
- 12. 從Git倉庫提取沒有推送提交
- 13. 如何通過提交消息找到git提交倉庫?
- 14. 遠程分支上的特定提交推送
- 15. Git:推動修改的提交
- 16. 如何刪除推送到遠程存儲庫的提交?
- 17. 在遠程提交和推送時放棄本地git更改
- 18. 如何刪除本地git倉庫中的特定提交?
- 19. 如何將特定文件推送到git存儲庫,而本地提交不與遠程存儲庫同步
- 20. 更改推送提交的git註釋
- 21. 如何將我的git倉庫切換到一個特定的提交
- 22. Git倉庫 - 如何重播對舊倉庫的新提交,以及在運行git filter-branch後修改倉庫
- 23. Git - 推送新提交併忽略未提交的更改
- 24. 推空提交到遠程
- 25. Git - 通過單一整合提交推送到新的遠程
- 26. Git合併我已經推送到遠程原點的提交
- 27. 推送多個不相關的提交到遠程git回購
- 28. 修改推送提交的提交消息。 (Mercurial)
- 29. 水銀:無法推到遠程倉庫後拉合併提交
- 30. 如何編輯推送Git提交的提交消息
使用帶有'git push'命令的'-f'標誌 – 1615903
可能重複[如何將修改後的提交推送到遠程git repo?](http://stackoverflow.com/questions/253055/how-do- i-push-revised-commit-to-the-remote-git-repo) – 1615903