我可以保存我的一些旧提交的更改,通过`git checkout`获得?

时间:2015-07-14 21:02:53

标签: git

我正在学习Git,而我正在阅读this

  

您可以使用git checkout查看“对其进行一些导入更改   hello.py“提交如下:

     

git checkout a1e8fb5

     

这使您的工作目录与a1e8fb5的确切状态相匹配   承诺。您可以查看文件,编译项目,运行测试和   甚至编辑文件,而不用担心失去当前的状态   项目。您在此处所做的任何事情都不会保存在您的存储库中。至   继续发展,你需要回到“当前”的状态   你的项目:

     

git checkout master

但在这种情况下,我将失去工作目录中的当前更改...如果我的实验成功并且我想保存结果怎么办?即我可以保存我的一些旧提交的更改,通过git checkout获得吗?

2 个答案:

答案 0 :(得分:0)

您说要按照链接的教程保存实验结果。在那里,您可以看到提交日志显示为

  

b7119f2继续做疯狂的事情872fa7e尝试疯狂的事情   
a1e8fb5对hello.py进行一些重要更改
435b61d   创建hello.py
9773e52初始导入

在这种情况下,您的实验都不会有丢失的风险 - 它们会保存在提交872fa7eb7119f2中,并且可以使用git checkout轻松恢复,因为您已经了解

如果你做了一些非工作或暂时的改变,但是你还没有准备好做出任何理由,那么你的回答是有帮助的 - git stash在这种情况下是完美的。但是就你所遵循的教程而言,你已经犯下了疯狂的东西。并且可以随时checkout这些变化或项目的先前状态。

答案 1 :(得分:0)

git checkout <commit-id> -b foo

说明

foo :这可以是您希望结帐提交的备用分支的名称。

commit-id :嗯,这是您想要结帐的提交。

结果

您的结帐更改将存储在您当地的foo中,所以不用担心。如果您想继续进行更改,则必须使用git commit;这些提交将保留在foo,您可以随时在其中引用它们。