【问题标题】:Git correct switching between branchesGit正确切换分支
【发布时间】:2013-11-02 06:13:20
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

    您有几个选项可以让一个分支上的提交对另一个分支可用——您的选择取决于您希望以后如何查看历史记录。

    1. merge 将在 release 分支上创建一个提交,该分支有两个父节点:develop 的尖端和 release 的前一个尖端。然后release 将拥有来自developrelease 的所有工作。要将develop 合并到release,请确保您有一个干净的工作副本,然后运行git checkout release,然后运行git merge develop
    2. 您还可以在release 之上cherry-pickdevelop 进行的单个提交。 Cherry-picking 在release 上创建一个新提交,它执行在您命名的提交中所做的确切更改。如果您在develop 上完成了大量工作,这将很有用,但您只希望带来一两件事情。要挑选,请查看git log,复制命名您想要的提交的sha hash,然后运行git checkout release,然后运行git cherry-pick <commit hash>
    3. 如果您需要将一些大范围的提交从一个移动到另一个,您可以使用 rebase --onto。它有点高级,但如果您有兴趣,可以read about it

    回答您的后续问题:

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

    2. 同样,要切换回来,您只需再次git checkout develop

    【讨论】:

    • 感谢详细的解释!很有帮助:)
    【解决方案2】:

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

    【讨论】:

    • 或者樱桃采摘,或者类似的操作,是的。
    猜你喜欢
    • 2018-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-07
    • 2010-09-06
    • 2021-12-25
    相关资源
    最近更新 更多