如何在Windows上的git中将代码从master移动到release分支

时间:2017-10-23 10:12:28

标签: git merge

好的,我们已经阅读了git书籍,可能还有数百篇或者文章,我们的专家是SCCS,VCS,SVN等,但我们真的很难理解和使用git。

我们在master中完成了所有更改。

我们现在想将master复制到现有的发布分支,但到目前为止已经失败了。

我们知道没有简单的方法可以合并两个分支(其中一个没有变化),并且您无法从主分支中完成。我们知道您必须签出要合并到的分支(发布),合并,然后提交。

我们的本地开发机器有主机检出,显然我们不想触摸/中断/损坏/更改这些,所以我们从头开始在一个新的地方克隆项目(例如tmp / merge_area / ourproject

接下来我们进入windows explorer中的tmp / merge_area / ourproject并右键单击tortoise git->开关/结帐。

这使我们可以选择“遥控器/原点/释放”,“主人”或“遥控器/ orgigin / master。现在我们感到困惑:

  1. 由于某种原因,此列表中没有本地发布分支。当然,如果git克隆整个仓库,发布分支也将在我的本地仓库?
  2. 在选项下,默认勾选“创建新分支'版本'”。这很令人担忧,因为我们已经创建了一个分支版本,当我们去bitbucket web UI时我们可以看到这个分支。这是否意味着乌龟有一个错误,或者当你克隆一个回购时,它不会将任何分支克隆到你的机器上除了mater?
  3. 有一个“轨道”复选框。这是什么,我们想要它吗?
  4. 我们不知道上述答案,我们继续:

    • branch = remotes / origin / release。
    • 创建未分支的新分支。
    • 追踪

    这给了我们非常恐怖的信息:

    Note: checking out 'remotes/origin/release'.
    You are in 'detached HEAD' state. You can look around, make experimental
    changes and commit them, and you can discard any commits you make in this
    state without impacting any branches by performing another checkout.
    HEAD is now at b35352e..
    

    我们猜测我们做错了,因为这条消息听起来像我们打破了它。

    使用乌龟的正确方法是什么?

    接下来,我们按照stackoverflow上的一些示例尝试了命令行。

    $ git checkout release
    $ git merge master
    

    到目前为止,这么好,但下一步是什么?

    我们遵循的堆栈溢出示例说明下一步是

    $ git push origin release
    

    但我们当然需要先从合并中提交更改吗?如果我们必须解决一些未提交的合并冲突怎么办?

    然而,当我们尝试这个时:

    $ git commit -m "first try"
    

    我们收到错误:

    Your branch is ahead of 'origin/release' by 24 commits.
      (use "git push" to publish your local commits)
    

    为什么在本地提交更改的文件会从存储库中提出错误?

1 个答案:

答案 0 :(得分:0)

如果您只想将master中的修改放在release分支中,则应将master合并到release中,如下所示(在命令行中) :

(假设您的分支机构在本地更新)

  • git checkout release
  • git merge master(这可能只产生一个快进,意味着master和release分支将指向同一个提交)
  • git push origin release

你不应该在另一个文件夹中克隆repo,在Git中切换分支很容易。