簡體   English   中英

git rebase master錯誤地執行git pull而不是git push origin / your_branch -f后

[英]After a git rebase master mistakenly executed git pull instead of git push origin/your_branch -f

可能是由於缺乏睡眠而不是在git rebase master之后執行強制推送,我執行了git pull 現在我的拉取請求被弄亂了,包括來自master的所有提交。 有什么建議可以還原嗎?

git reflog已多次為我提供幫助。

此參考日志記錄對本地存儲庫/分支/參考的更新。

因此,在這種情況下,如果在拉動之前找到所需分支的起始提交,則可以將當前分支重置為該引用。 例如,重置為HEAD@{2}

git reset --hard HEAD@{2}

注意:使用--hard之前,請務必確定您的操作

Git reflog文檔

運行git pull只是獲取,然后合並上游分支。 假設合並成功,並且您仍然將該分支檢出,則應使用以下方法解決此問題:

$ git reset @^1

這會將分支重置為第一個父級,該父級應該是經過重新設置的分支(第二個父級是該分支的舊上游版本的頭部。)您可以在進行重置之前進行驗證:

$ git log --graph @^1

要么

$ gitk @^1

如果這些看起來理智,則重置應執行此操作。 它不會觸摸工作樹中的文件,因此您可以查看是否導致任何令人驚訝的更改。 我懷疑不會有任何合並,因為就代碼而言,合並可能是無操作的操作(再次假設成功)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM