这可能很简单,但我现在是一个git noob并且还没有完全围绕git分支模型。
假设我目前没有除master
以外的其他分支,但是现在我已经做了一些更改,因为我上次提交后我已经决定不想保留(注意:这些更改尚未提交) )。我还不想摆脱这些变化 - 我想把它们放在自己的分支中(例如experimental_stuff
),然后从我之前的提交继续开发。所以我猜步骤是:
git branch experimental_stuff
?)git checkout <last_commit>
?)git ???
?)这是正确的方法,我最后一部分需要什么git命令(如果有的话)?
[注意:这只是我自己使用的本地git存储库,如果这有什么不同。]
答案 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的答案很好。