![](/img/trans.png)
[英]How can I go go back to my master branch without losing all previous commits?
[英]How to go back to the previous master branch
首先,不要驚慌!
接下來,要求其他人不要推或拉,直到您推入的回購變得整潔。 如果轉到該特定機器,則可以使用git reflog
查看發生此情況之前的位置。 如果其他同事沒有拉入凌亂的版本,則他們的回購中可能還會有該遠程回購的master分支的副本。 使用任何一種方法來查找上一次明智提交的哈希。
如果遠程服務器是常規倉庫,而不是無頭倉庫,那么您可以簡單地使用git checkout master
來確保您位於master分支上,然后git reset [last known good commit hash] --hard
很難將其設置回原來的狀態是。 這只是假裝自該提交以來沒有發生任何事情。 如果您不確定自己在做什么,這種事情可能很危險,因此請確保先進行備份!
現在該存儲庫再次干凈,其他所有人都可以從中取出並再次推送到它。
接下來是做出有問題的承諾的人。 他們可以做同樣的事情: git checkout master
轉到其master分支的本地副本,然后git reset [last known good commit hash that they've already pulled in] --hard
引入的git reset [last known good commit hash that they've already pulled in] --hard
很難將其移回原來的位置,然后git pull [remote server name] master
進行后續更改。
然后,他們將不得不再次合並他們的更改。
要記住的關鍵點是:
git reflog
告訴您已檢查的內容,這對於消除錯誤很有用 git reset [hash] --hard
假裝沒有發生任何事情。 將來,如果您需要強制執行某些操作,請考慮是否需要先執行一些操作。 如果您要與Git對抗,那通常就是您忽略了某些東西的跡象。
由於您是一個團隊,因此您的團隊成員中有一個在其本地系統中擁有舊master
的機會。 只需從該系統強制推送即可恢復您的遠程Git存儲庫。
然后回到創建最近提交的團隊成員,將舊的master
拖入他的系統,解決沖突(如果有的話),然后像往常一樣推送。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.