我對我的一個專案做了很多更改,所以我想將更改推送到臨時分支以防萬一,但我改為推送到主分支。我嘗試用類似的東西恢復
git push -f origin last_commit_before_changes:master
我沒想到它會在本地進行更改,因此我錯誤地覆寫了所有內容(包括我的備份.....)并且我還沒有推送到正確的分支。有沒有可能解決這個愚蠢的錯誤?差異是否仍然存盤在某個地方?當我這樣做時它沒有顯示git log。
你可以說我對 git 不是很有經驗,我知道我犯了很多錯誤導致這種情況,不要粗魯。謝謝。
uj5u.com熱心網友回復:
git push -f origin last_commit_before_changes:master
這只是做:master用本地分支強制更新遠程遠程last_commit_before_changes。
假設您的本地 master 是最新的,您可以執行以下操作:
git push -f origin master:master
如果你的主人落后(因為你和其他人一起作業)那么只需執行此命令并要求所有同事執行(注意沒有選項-f):
git push origin master
這應該恢復一切。
更復雜的方法是從以下位置檢查日志:
git reflog
并在那里找到origin/master強制推送之前的哈希值。那么這應該解決它:
git push -f origin <hash found in reflog>:master
請注意,中的大多數命令git都不是破壞性的。舊提交只是隱藏在 UI 中。git 會在很長一段時間內保留所有內容,或者直到您強制執行垃圾收集。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/367055.html
