簡體   English   中英

如何返回上一個主分支

[英]How to go back to the previous master branch

我對git有嚴重的問題。 我的一個團隊成員決定在執行git pull命令之前不進行Git提交,因此主控頭在后面,所以我決定進行git push --force。 現在,git分支都被弄亂了,我不知道如何更改它。 我已附上屏幕截圖,以顯示我在說什么。

在此處輸入圖片說明

首先,不要驚慌!

接下來,要求其他人不要推或拉,直到您推入的回購變得整潔。 如果轉到該特定機器,則可以使用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實質上重寫歷史記錄
  • git reflog告訴您已檢查的內容,這對於消除錯誤很有用
  • git reset [hash] --hard假裝沒有發生任何事情。

將來,如果您需要強制執行某些操作,請考慮是否需要先執行一些操作。 如果您要與Git對抗,那通常就是您忽略了某些東西的跡象。

由於您是一個團隊,因此您的團隊成員中有一個在其本地系統中擁有舊master的機會。 只需從該系統強制推送即可恢復您的遠程Git存儲庫。

然后回到創建最近提交的團隊成員,將舊的master拖入他的系統,解決沖突(如果有的話),然后像往常一樣推送。

對您而言,最簡單的方法是使用master分支進行一次提交,該操作類似於:

git revert HEAD~1

還要檢查此處給出的答案,以獲取不同還原提交的詳細說明。

暫無
暫無

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

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