所以我在git上有两个分支:develop
和release
。直到现在我一直在使用develop
分支。我只是提交了develop
分支,我想在release
分支中提供。我该怎么做?我在这里有点困惑。正确地在分支之间切换
1)是否当我做 git checkout -b release
2)要切换回develop
分支,我可以做一个结帐这个自动发生的,对不对?还是我需要做一个合并?
所以我在git上有两个分支:develop
和release
。直到现在我一直在使用develop
分支。我只是提交了develop
分支,我想在release
分支中提供。我该怎么做?我在这里有点困惑。正确地在分支之间切换
1)是否当我做 git checkout -b release
2)要切换回develop
分支,我可以做一个结帐这个自动发生的,对不对?还是我需要做一个合并?
您有几个选项可以让一个分支上的提交可用于另一个分支 - 您选择哪一个取决于您希望以后如何查看历史记录。
release
分支有两个父提交:的develop
尖端和release
前尖。 release
然后将具有从develop
和release
的所有工作。要合并develop
到release
,请确保您有干净的工作副本,并运行git checkout release
,然后运行git merge develop
。develop
在release
之上。 Cherry-picking在release
上创建了一个新的提交,它执行您提交的名称所做的确切更改。如果你在develop
上完成了一大堆工作,这很有用,但你只需要带上一两件事情。要挑选,请查看git log
,复制名称为所需提交的sha散列,然后运行git checkout release
,然后运行git cherry-pick <commit hash>
。要回答你的后续问题:
都能跟得上! git checkout
的一般用途是使你的工作副本看起来像一个你名字为的东西。当您运行git checkout release
时,git会将工作副本中的实际文件更改为上次提交到release
的状态。结帐不会更改现有分支。 (另外,你不需要-b
如果release
已经存在; checkout -b
是一个方便的快捷方式创建并一次性检出一个分支)
按照同样的思路,切换回,所有你需要再做git checkout develop
。
感谢您的详细解释!很有帮助:) – rgamber