1.修改檔案A,commit並push到遠端倉庫
2.修改檔案B,commit,也push到了遠端
3.現在A檔案的修改錯誤了,需要回滾到之前的版本,但是檔案B的修改需要保存下來,請問現在應該如何操作?
如果用git reset --hard指令回滾到A修改的版本號,那麼B的修改也被丟棄了
仅有的幸福2017-05-02 09:39:50
這麼做不會丟吧,我們都是這麼做的..
git reset --hard指令回滾到A修改的版本號
git pull --rebase origin 分支號拉下來B的程式碼看看有沒有衝突,有衝突解決
後git push ..
给我你的怀抱2017-05-02 09:39:50
git reset --soft HEAD@{id},這樣就是將提交撤回了,但是工作區的修改不會消失,然後將錯誤的修改改對了再提交並push到遠端吧
伊谢尔伦2017-05-02 09:39:50
不要在 public branch 上對已經提交的 commit 使用 git reset
,如果有人已经 pull 了这些 commit,会很麻烦
这种情况下应该用 git revert
,會產生一個單獨的 commit
ringa_lee2017-05-02 09:39:50
git rebase -i HEAD^^^
用默认编辑器打开一个文档,修个A
那次提交前面改成drop
或简写为d
保存。
會自動捨棄那次提交(如果有衝突要自己解決衝突)
PHP中文网2017-05-02 09:39:50
git log 看 A之前 A B的commitId
git reset --hard A之前的commitId
git cherry-pick B的commitId
這個功能叫檢出功能,可以拿到某一次提交的修改
伊谢尔伦2017-05-02 09:39:50
只能revert,不能reset,凡是已經push到遠端的commit都不能reset或commit --amend,這個會破壞別人的版本歷史。
關於revert可以看看我的這篇文章:/a/11...