Git在分支之间正确切换

时间:2013-11-02 06:13:21

标签: git git-branch branching-and-merging

所以我在git上有两个分支:developrelease。到目前为止,我一直在使用develop分支。我刚刚提交了develop分支,我想在release分支中使用它。我该怎么做?我在这里有点困惑。

1)当我这样做时会自动发生吗? git checkout -b release

2)要切换回develop分支,我可以办理结账,对吗?还是我需要合并?

2 个答案:

答案 0 :(得分:2)

您有一些选项可以让一个分支上的提交可供另一个分支使用 - 您选择的选项取决于您希望历史记录的显示效果。

  1. 合并会在release分支上创建一个提交,其中包含两个父级:develop的提示和release的前提示。然后release将完成developrelease的所有工作。要将develop合并到release,请确保您拥有干净的工作副本,然后运行git checkout release,然后git merge develop
  2. 您还可以在develop之上<{1}} 挑选个别提交。 Cherry挑选在release上创建一个新的提交,它执行在您提到的提交中完成的确切更改。如果您在release上完成了大量工作,这很有用,但您只需要带来一两件事。要挑选,请查看develop,复制命名所需提交的sha哈希,然后运行git log,然后git checkout release
  3. 如果您需要将一系列提交从一个提交到另一个,您可以使用 rebase --onto 。它有点高级,但如果你很好奇,你可以read about it
  4. 回答您的后续问题:

    1. 都能跟得上! git cherry-pick <commit hash>的一般目的是使您的工作副本看起来像您命名的。当您运行git checkout时,git会将工作副本中的实际文件更改为上次提交到git checkout release的状态。结帐不会更改现有分支。 (另外,如果release已经存在,则不需要-b; release是一次创建和签出分支的便捷快捷方式。)

    2. 同样,要切换回来,您需要做的只是再次checkout -b

答案 1 :(得分:0)

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