我是 git 和 GitHub 的新手。今天早些時候,我推送了一些檔案,其中包括.py檔案和一些影像。在我推它之后,我看到有 2 個不同的分支main和master. 我只想有一個分支,所以我在沒有我正在尋找的第二個分支(主)的情況下搜索了如何將代碼推送到主分支。在這樣做之前,我洗掉了 GitHub 上包含所有檔案的 master 分支,然后我開始將我的代碼檔案推送到主分支。從我發現的其中一個谷歌結果中,我執行了git pull. 現在我在本地存盤庫和 GitHub 存盤庫上只有 3 個檔案(readMe、gitignore 和 LICENSE)。我想要那些代碼檔案,因為我也沒有任何本地備份。有人可以幫忙嗎?
uj5u.com熱心網友回復:
您可以使用 恢復已洗掉的分支和提交git reflog。它將為您提供最近的提交及其 ID,只需將其附加git checkout到檢出該特定提交,并在您完成恢復檔案后檢出您的分支。
否則,請考慮將當前分支重置為該提交,例如將提交 ID 附加到git reset --hard.
uj5u.com熱心網友回復:
你很幸運,因為洗掉分支并不意味著一切都丟失了。
當您創建/推送到master分支時,會創建一個指向最新提交的新 HEAD。
即使您洗掉了分支,對提交的 HEAD 參考仍然存在。
這為您提供了一種使用git reflog.
簽出main分支并運行git reflog。
你應該得到類似的東西:
hfjd76g HEAD@{0}: checkout: moving from master to main
6475837 HEAD@{1}: commit: YOUR DELETED COMMIT
849hgu6 HEAD@{1}: checkout: moving from main to master
849hgu6 HEAD@{2}: random commit on main
考慮6475837到您要恢復的提交,運行:
git checkout -b recovered_master 6475837
這將恢復master為recovered_master,然后您可以合并等。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/313262.html
