2014-10-31 163 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重新应用您的本地更改。

编辑:哎呀抱歉意识到这是从原来的帖子有点偏离。

相关问题