2014-10-31 111 views
0

我工作的一個項目(主),有大約100個提交,無枝等GIT - 如何看待舊的提交而不會丟失更改?

我想看到的項目是如何看起來像在提交1,然後在10,20,30

如何在不丟失任何數據的情況下查看早期提交?

我想從之前的提交中看到它後,我想返回到現在的位置。

如何做到這一點?我認爲恢復更持久,我應該尋找其他的東西?

+1

「我可以以某種方式恢復爲提交1/10/20/30等,而不會丟失任何數據?」 ---你怎麼能簽出一箇舊的提交**與**丟失數據在第一個地方? – zerkms 2014-10-31 21:52:28

回答

3

對於只是希望(「看見」你問)做

git checkout [the name of the sha] 

你做

git log 

這裏得到啥你看我檢查出最初提交的倉庫與數以百計的提交:

$ git checkout 772df05 # Enough of the sha to be unique, often 6-8 chrs. 
Note: checking out '772df05'. 

You are in 'detached HEAD' state. You can look around, make experimental 
changes and commit them, and you can discard any commits you make in this 
state without impacting any branches by performing another checkout. 

If you want to create a new branch to retain commits you create, you may 
do so (now or later) by using -b with the checkout command again. Example: 

    git checkout -b new_branch_name 

HEAD is now at 772df05... Initial commit 

看文件,然後...

$ git checkout master 

最後要注意的 - 切換分支之前,你可能需要採取的兩件事情:

首先任何本地更改的文件,已經在git的(而不是新的文件)存在應該相加或藏匿。添加可能是學習git時最簡單的。其次,任何新的或已更改的文件都應該被提交 - 即使只是一個「wip」。

+0

作品像一個魅力,但是當我嘗試結賬回主人時,我得到:$ git checkout master 'error:can not stat'core/admin':Permission denied error:can not stat'core/admin':Permission denied error :不能統計核心/管理員:權限被拒絕 - 嘗試中止rebase,但沒有rebase正在進行。是的,我當然在Windows(8.1)上。任何想法爲什麼發生這種情況,以及如何解決它? :([更新]封閉的崇高文本,看起來像當你更改的文件在Windows上鎖定的任何程序中打開時解決並留下給其他人,如果這發生在他們身上。 – Wordpressor 2014-10-31 22:00:16

+0

@Wordpressor如果你在git checkout之前使用sudo主? – 2014-10-31 22:02:51

1

使用git log來查看項目的所有提交,使用箭頭鍵向下滾動,直到找到要執行的提交。

然後,只需採取在注意他的散列(如55ea49)annd使用以下命令:

git checkout <hash> 

它將保存解壓文件,以便與提交,但保留其他的,所以當你做,你可以回去了最新提交使用

git checkout HEAD 

需要注意的是最新的前10名去提交,你可以做

git checkout HEAD~10 

而且很明顯,你可以改變10通過任何數字

你應該做

git help checkout 

瞭解什麼結賬呢

1

git revert丟失任何數據本身。但是,它確實更改當前分支的工作副本和頭部。如果你想看看以前的提交,你可以使用git log及其許多參數。如果你想簽出一個實際提交來在編輯器中查看文件,只需使用git checkout移動到你想要的任何提交。完成後,只需執行git checkout master即可返回到當前狀態。

1

您也可以git stash save將您當前的工作保存爲補丁。然後做任何你想要的,包括結帳修訂或應用補丁。然後git stash applygit stash pop重新應用您的本地更改。

編輯:哎呀抱歉意識到這是從原來的帖子有點偏離。

相關問題