git分支 - 如何使当前主分支,然后将主恢复到以前的版本?

时间:2011-07-20 16:02:17

标签: git git-branch

这可能很简单,但我现在是一个git noob并且还没有完全围绕git分支模型。

假设我目前没有除master以外的其他分支,但是现在我已经做了一些更改,因为我上次提交后我已经决定不想保留(注意:这些更改尚未提交) )。我还不想摆脱这些变化 - 我想把它们放在自己的分支中(例如experimental_stuff),然后从我之前的提交继续开发。所以我猜步骤是:

  • 让当前主人成为分支(git branch experimental_stuff?)
  • 返回上一次提交(git checkout <last_commit>?)
  • 将此作为我的新主分支,以便将来的提交从此处继续(git ????)

这是正确的方法,我最后一部分需要什么git命令(如果有的话)?

[注意:这只是我自己使用的本地git存储库,如果这有什么不同。]

2 个答案:

答案 0 :(得分:7)

你差不多完成了。

假设您已对开发文件进行了提交。然后..

  

git branch experimental_stuff

     

git reset --hard HEAD ^(返回主分支的前一次提交以继续开发)

假设您尚未对开发文件进行提交。然后.. 您需要将当前更改保存到临时目录

  

git stash

     

git checkout -b experimental_stuff(创建并更改分支到experiental_stuff)

     

git stash pop(将临时目录填充到实验分支中)

     

git checkout master(返回master,这次没有必要回到之前的提交,因为你没有提交)

答案 1 :(得分:2)

  

假设我目前没有分支

只是为了纠正你:你总是在Git中至少有一个分支。即使master也是一个分支,具有与任何其他分支相同的功能。并且Git不处理与另一个分支不同的名为master的分支。这只是一个惯例,大多数开发人员将其主要分支命名为“master”,但您不需要。您甚至可以删除您的主分支并创建分支,如开发,发布等。对于您自己的问题:Kit Ho的答案很好。