撤消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
提交
取消
