2017-08-08 86 views
0

背景故事如何在丟失所有以前的提交後回退到舊版本的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 resetgit 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

+0

不會'git fetch'然後'git checkout 9e394c24e7'工作嗎? –

+0

它給'錯誤:pathspec'9e394c24e7'與git已知的任何文件都不匹配。' –

回答

1

去這裏:

https://github.com/rdrsadhu/UEM-Kolkata-B.Tech/commits/9e394c24e708e590ec72e5d772be13749fb8cad3 

在樹下拉這一承諾創建一個新的分支(也可以在你的樹鏈接中工作)。現在應該在該分支下恢復提交。將分支取回到本地,並將其重置爲主。然後推力。

相關問題