2017-09-27 275 views
1

我真的是github和git的初學者,我在一個基本代碼的github上有一個倉庫,最近我安裝了一個新的操作系統作爲備份我的應用程序代碼,並添加了很多內容它,當我試圖推動修改github上,我得到了一個錯誤:git命令刪除我的東西

[rejected]  master -> master (fetch first) 
error: failed to push some refs to '[email protected]' 
hint: Updates were rejected because the remote contains work that you do 
hint: not have locally. This is usually caused by another repository pushing 
hint: to the same ref. You may want to first integrate the remote changes 
hint: (e.g., 'git pull ...') before pushing again. 
hint: See the 'Note about fast-forwards' in 'git push --help' for details. 

我搜索上線,發現這是我執行的命令:

git pull --rebase 

這引起了我一個問題,我搜索並找到了我執行的另一個命令以及

git pull origin branchname --allow-unrelated-histories 

另一個錯誤出現了,發現我執行另一個答案:

git fetch origin 
git reset --hard origin/master 
git pull 

這其中除去我已經在我的本地計算機上進行的所有更改,並與基碼我曾在更換遠程(github)存儲庫

對不起,我知道無知不是保佑,但現在我問是否有任何方法讓我的代碼回來?

+0

wooow我剛剛發佈了這1秒,看到有人投下了它立即!!!!!無論如何,我不打算處理這些人的更多,請我需要關於這個人的幫助 – medBo

+1

'git reflog'可能有助於文件/更改至少是一些提交的一部分。我確定這裏有相關的問題。 –

回答

5

你有不知何故通過使用reset --hard搞亂你的分支HEAD。使用reflog查找在決定重新綁定之前的最後一次提交,然後重置爲提交。

git reflog -g 

# find the commit id which you want to return to using the commit message 
# It might contain two commit ids for the same commit message 
# if rebase was successful. Choose the older one. 

git checkout -b temp_branch 
git reset --hard <found_commit_id> 
+0

男人我愛你,你保存我的工作 – medBo

+0

當我嘗試合併temp_branch它說:拒絕合併無關的歷史 – medBo

+0

我不知道你爲什麼面對這個錯誤,但是你可以在合併時傳遞'--allow-unrelated-historories'參數。試着在另一個臨時分支上做,這樣你就不會做不理想的事情。 – hspandher

0

對不起,我知道無知不是保佑,但現在我問是否有辦法讓我的代碼回來?

那麼,從備份中恢復它。如果你沒有它,那麼沒有,你所有的未提交更改最有可能消失。不一定非常好,但最後的機會是立即關閉機器,將硬盤放入其他機器,將磁盤安裝爲只讀模式並嘗試使用「取消刪除」類型的工具。

Git命令刪除了我的東西

號你做。通過做事不知道結果會是什麼。很高興沒有人發佈rm -rf /作爲您複製和粘貼的最終解決方案...我相信您學會了總是做一個副本,以防萬一出現問題。盲目地執行未知的命令。

+0

但是如果他在硬重置之前已經提交了,他可以嘗試reflog – Alexan

+0

另外,如果他已經分階段但未提交更改,則可以在原始對象數據庫中搜索看起來有趣的事物。 – o11c

+0

@Alexan是的,我做了,它的工作:) – medBo

0

hspandher的回答是正確的,但我想添加一些更多的信息。

您也可以在git log中看到提交ID,取決於分支發生了什麼。

而且第一個錯誤是一個正常的合併錯誤,

git pull --rebase 

儘量拉的變化,從它的上游,然後重訂更改到上游處處長,基本上它看起來像你將有從上次提交開始工作,但在此期間可能會發生衝突。這有點像一個合併,但你拉動遠程主人。

看看這個:enter image description here

現在,如果你在一個團隊中工作,問他們什麼是他們的合併策略,因爲可以有回購之間的巨大差異。也只是一個經驗法則,如果你與他人一起工作,總是使用自己的分支,你總是可以將它合併回來,但是在原點上擰上遙控器可以給人一個不錯的小樂趣。