2013-04-01 72 views
2

,所以我做git checkout <past_commit_hashtag>混帳撤銷過去的結賬提交

但後來我想取消它,並返回到當前最新修訂版

所以我做的事情一大堆:

git reset --hard 
git checkout <root folder> 
git branch -D master 
git checkout master 

儘管如此,我現在得到一個錯誤信息Fatal error: Cannot redeclare file_create_url() etc這意味着我並沒有恢復到正常的最新版本...

如何將請正確回到當前修訂版本?

git pull --rebase表明我的分支是最新的,而且 揭示git status,有沒有髒改變

回答

1

git reflog 

要查看當地四處移動你的頭裁判的歷史和發現的提交的哈希值,你想一回做,

git checkout $THATHASH 
1

「撤銷檢出」你只需要簽出你所需要的版本。如果你想恢復到一些分支只是做git checkout branchname。當然,如果你已經執行了幾個不明白其含義的隨機命令,那麼將它們推回來可能會更困難。

1

你在分開HEAD狀態,回去本來只是git checkout master。但在此期間,你身邊的人陷入了困境(git branch -D master)......恭喜!

git fsck --lost-found應該向你展示浮在空中的幾次提交(你已經放棄的提交,以及你被殺的master)。每個人做一個git checkout,並環顧四周。如果它看起來像你丟失的master,那麼在那裏做一個git branch master。檢查它的理智。該分支的配置(從中獲取等)將丟失,並且需要重新構建。見git config,git remote等等。

另請參見git書中的"Maintenance and data recovery"章節。

如果任何疑問,複製包含庫到一個新的副本,在這裏你可以四處走動,直到你確切地知道如何恢復目錄(無,git不會丟失任何數據,但解開的一塌糊塗一個CAN用幾條命令創造的又是一壺魚......)