背景故事:如何在丟失所有以前的提交後回退到舊版本的git存儲庫?
我的回購協議(說「ABC」)在GitHub上託管(但我沒有本地版本的話)。
我想添加更多的文件到同一個回購。
我做什麼:
我創建了一個新的本地目錄(說 'XYZ')
搬進它和初始化的git
cd xyz
git init
添加git的遠程鏈接「ABC '
git remote add origin {link to ABC}
創建了一些新的f爾斯並承諾他們
git add ./
git commit -m "commit message"
接下來,當我試圖推新承諾的GitHub
git push origin {branch-name}
我收到一個警告,遠程倉庫的一些文件在我的本地機器丟失。
然後,我嘗試了被迫推
git push -f origin {branch-name}
當然(我不知道當時)我失去的「ABC」我以前的所有文件和所有我現在已經是1單一提交(強行推一)。
另外;我甚至沒有以前提交的SHA(至少我找不到它們),所以git checkout <commit>
不起作用。也不git reset
或git revert
但是在ABC的github倉庫摸索,我發現一個樹這說明正是我想要找回的文件。無論如何我可以使用這棵樹或任何其他步驟,以找回我丟失的文件。
請忽略任何錯誤和我的孩子般的寫作。一些技術描述可能是錯誤的,因爲我是git的新手。隨時回覆。
在此先感謝!
**
我的ABC回購與1的現狀承諾:https://github.com/rdrsadhu/UEM-Kolkata-B.Tech
[這是不正確的了。我恢復了我的文件通過提交c005a51]
ABC回購我談論的樹:https://github.com/rdrsadhu/UEM-Kolkata-B.Tech/tree/9e394c24e708e590ec72e5d772be13749fb8cad3
不會'git fetch'然後'git checkout 9e394c24e7'工作嗎? –
它給'錯誤:pathspec'9e394c24e7'與git已知的任何文件都不匹配。' –