0

所以我在 git:developrelease. develop直到现在我一直在使用分支。我刚刚提交了develop我希望在分支中可用的release分支。我该怎么做?我在这里有点困惑。

1)当我这样做时,这是否会自动发生 git checkout -b release

2)要切换回develop分行,我可以结帐,对吗?还是我需要合并?

4

2 回答 2

2

您有几个选项可以使一个分支上的提交可用于另一个分支——您选择的选项取决于您希望以后的历史看起来如何。

  1. 合并将在release具有两个父级的分支上创建提交: 的尖端developrelease. 然后将拥有和release的所有工作。要合并到中,请确保您有一个干净的工作副本,然后运行​​.developreleasedevelopreleasegit checkout releasegit merge develop
  2. 您还可以挑选基于develop. releaseCherry-picking 会创建一个新的提交,release它会执行在您命名的提交中所做的确切更改。如果您已经完成了大量工作,这很有用develop,但您只希望带来一两件事情。要挑选,请查看git log,复制命名您想要的提交的 sha 哈希,然后运行git checkout release​​,然后git cherry-pick <commit hash>.
  3. 如果您需要将一些大范围的提交从一个移动到另一个,您可以使用rebase --onto。它有点高级,但是如果您好奇,可以阅读它。

要回答您的后续问题:

  1. 没有!的一般目的git checkout使您的工作副本看起来像您命名的东西。运行时git checkout release,git 会将工作副本中的实际文件更改为上次提交的状态release。Checkout 不会更改现有的分支。(此外,您不需要-bifrelease已经存在;checkout -b这是一次性创建和签出分支的便捷快捷方式。)

  2. 同样,要切换回来,您需要做的就是git checkout develop再次。

于 2013-11-02T17:30:12.267 回答
0

如果要将更改从一个分支带到另一个分支,则必须进行合并。

于 2013-11-02T07:51:55.437 回答