繁体   English   中英

将分支推送到 github 后,是否必须手动将分支与 master 合并?

[英]Do I have to manually merge a branch with master after pushing the branch to github?

我问这个问题是因为我有点困惑(只是有点困惑)。

当我使用Pycharm (在 master 以外的分支上)时,它为我提供了提交分支的更改并将其推送到 github 的机会。

所以我就是这样做的。

现在...

之后,我运行这个:

current branch *test

1.git pull origin master
2.git checkout master
3.git merge test

1.它告诉我一切都是最新的。 然后继续3.它还告诉我所有最新的master

问题:

  1. 当我提交一个分支到 github 时会发生什么?
  2. 将该分支推送到 master 后,是否必须运行上面的代码块?

编辑

  1. 我从master branch
  2. 我运行git checkout test

出现一条消息。

switched to branch test. your branch is ahead of origin/test by 3 commits.
(use "git push" to publish your local commits)
  1. 我运行命令git pull origin master

出现一条消息,多行显示正在更新的分支。

  1. 我重新运行命令git pull origin master

    来自http://github.com/username/project的消息出现

    • 分支主 -> FETCH_HEAD 已经是最新的
  2. 我按下绿色按钮提交更改并推送。 弹出窗口似乎nothing to commit

  3. 我运行命令git checkout master

您的分支已经与 origin/master 保持同步

  1. 我运行命令git merge test

    都是最新的!!!

那么为什么要git merge test呢?

1. 它告诉我一切都是最新的。 然后继续到 3。它也告诉我所有与主人的最新情况。

$ git pull origin master

这个命令相当于

$ git fetch origin master
$ git merge master

第一步从origin远程(这是您的 GitHub 存储库的昵称)中的master分支下载所有更改。 第二个命令将master (现在包括来自 GitHub 的任何更改)合并到当前分支 ( test )。 由于您可能在master上创建了分支并且没有进行任何其他更改,因此您会收到所有内容都是最新的消息。

我不确定为什么第 3 步说所有内容都与 master 保持同步。 您可能执行了其他未在此处发布的命令,或者将相同的更改直接提交给master或之前的合并test

问题:

  1. 当我提交一个分支到 github 时会发生什么?

当您将分支推送到 GitHub 时,您会在 GitHub 存储库中创建该分支以及它所代表的整个更改历史记录。 任何其他分支都没有任何变化,包括master

在将该分支推送到 master 后,是否必须运行上面的代码块?

“将一个分支推送到 master”没有任何意义,因为master也是一个分支。 您只能将分支推送到远程. 或者您可以一个分支合并到另一个分支。

要使用本地更改更新 GitHub 存储库,您有两种选择:

  1. 手动将您的分支合并到master ,然后将master推送到 GitHub

     $ git checkout master $ git merge test $ git push origin master

    请注意,这仅执行原始命令中的第 2 步和第 3 步。 您原来的 Step 1 将master合并到test 仅当master有更改并且您想要检查合并冲突并在它们存在时解决它们时才需要这样做。 相反,您想要做相反的事情:将test合并到master 这就是为什么我先结帐master然后合并test

  2. 将分支推送到 GitHub 并在您的 GitHub 存储库中创建拉取请求。 然后,当您合并 PR 时,GitHub 上的master将更新,您需要将更改拉回本地存储库:

     $ git checkout master $ git pull origin master

ps 如果您愿意,您可以在 PyCharm 中执行所有这些命令的等效操作。

是的。 您必须手动合并分支。 因为在当前状态下,您的回购中有两个分支。 所以如果你想将新分支合并到主分支然后

git checkout master
git merge <your-new-branch>
git push -u origin master

这应该可以完成工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM