撤消git pull,如何將repos帶到舊狀態有沒有辦法恢復或撤消git pull,以便我的源/ repos將進入git pull之前的舊狀態?我想這樣做是因為它合并了一些我不想這樣做的文件,但只合并了其他剩余的文件。所以,我想要恢復這些文件,這可能嗎?謝謝 :)編輯我想撤消git merge以澄清??吹揭恍┐鸢负螅揖瓦@樣做了git reflogbb3139b... HEAD@{0}: pull : Fast forward01b34fa... HEAD@{1}: clone: from ...name...現在,我該怎么辦?做的git reset --hard 還行嗎?我不想再把它搞砸了,所以要求詳細的步驟?
3 回答

繁花如伊
TA貢獻2012條經驗 獲得超12個贊
git pull
將做兩件事:它做了一個git fetch
然后git merge
它合并了已經設置為在你的配置中合并的分支。
所以你想要做的是撤消合并(撤消fetch并沒有多大意義,也不是必要的)。
要做到這一點,您可以嘗試使用git reset --hard
重置為以前的狀態。使用git-reflog命令查找先前狀態的SHA-1,然后重置為該狀態。
警告:git reset --hard
刪除所有未提交的更改。

12345678_0001
TA貢獻1802條經驗 獲得超5個贊
與jkp的答案相同,但這是完整的命令:
git reset --hard a0d3fe6
通過這樣做找到a0d3fe6
git reflog
并查看要撤消的點。

Qyouu
TA貢獻1786條經驗 獲得超11個贊
撤消合并的更現代的方法是:
git merge --abort
而稍微老一點的方式:
git reset --merge
之前答案中描述的老派方式(警告:將丟棄所有本地更改):
git reset --hard
但實際上,值得注意的git merge --abort
是,它只相當于給git reset --merge
定MERGE_HEAD
的存在。這可以在git help for merge命令中讀取。
git merge --abort is equivalent to git reset --merge when MERGE_HEAD is present.
合并失敗后,如果沒有合并,MERGE_HEAD
則失敗的合并可以撤消,git reset --merge
但不一定是撤消git merge --abort
,因此它們不僅是同一事物的舊語法和新語法。這就是我發現git reset --merge
在日常工作中更有用的原因。
- 3 回答
- 0 關注
- 850 瀏覽
添加回答
舉報
0/150
提交
取消