3

我在 master 中编写了一些代码,并意识到我正在做一些我还不想放在 master 中的实验。阅读此文档,似乎我应该这样做

git checkout -b experiment

在我开始编写代码之前。我现在应该如何进行?恐怕如果我执行上面的命令,会发生什么

  1. experiment将创建一个分支(从 master 复制)
  2. Git 将从这个新分支结帐,这意味着我将丢失我的工作。

如何在不影响 master 的情况下将当前工作提交到新分支?

4

2 回答 2

5

Carl 有正确的答案,但我只想补充一点,如果您所做的工作尚未提交,另一种选择是在切换到新分支之前存储您的更改以保存您的工作:

$ git stash save
$ git checkout -b new-branch
$ git stash pop

第一个命令将您的更改保存到存储区,并使您的工作目录干净。然后你创建你的分支,然后你从存储中删除你的更改并将它们应用到分支。完毕!

于 2013-07-14T15:58:42.927 回答
4

你有没有做出任何承诺?如果没有,该checkout命令将完全按照您的意愿执行。

如果你有,你仍然可以 - 该命令将从你的当前创建并签出一个新分支HEAD,而不是从master. 如果你想reset在创建新分支后掌握它,那也没关系——只要确保新分支首先拥有你需要的一切!

于 2013-07-14T15:49:34.003 回答