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

时间:2017-03-11 19:24:11

标签: git github git-branch git-push

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

当我使用main { max-height: 500px; } (在除了master之外的分支上)时,它为我提供了将分支的更改提交并推送到github的机会。

所以我这样做。

现在...

之后,我运行了这个:

Pycharm

current branch *test 1.git pull origin master 2.git checkout master 3.git merge test 它告诉我所有内容都是最新的。然后转到1.它还告诉我所有最新的3.

问题:

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

    1. 我从master
    2. 开始
    3. 我运行master branch
    4. 出现一条消息。

      git checkout test
      1. 我运行命令switched to branch test. your branch is ahead of origin/test by 3 commits. (use "git push" to publish your local commits)
      2. 会显示一条消息,其中有许多行显示正在更新的分支。

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

          来自http://github.com/username/project

          的消息
          • 分支主机 - > FETCH_HEAD 已经是最新的
        2. 我按绿色按钮提交更改并按下。弹出窗口显示git pull origin master

        3. 我运行命令nothing to commit

        4. 您的分支已与origin / master

          保持同步
          1. 我运行命令git checkout master

            ALL UP-TO-DATE !!!

          2. 为什么git merge test

2 个答案:

答案 0 :(得分:0)

  

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

$ git pull origin master

此命令相当于

$ git fetch origin master
$ git merge master

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

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

  

问题:

     
      
  1. 当我将分支推送到github时会发生什么?
  2.   

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

  

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

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

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

  1. 手动将您的分支合并到master,然后使用

    master推送到GitHub
    $ git checkout master
    $ git merge test
    $ git push origin master
    

    请注意,这仅执行原始命令中的步骤2和3。您原来的第1步将master合并到test。仅当master发生更改并且您要检查合并冲突并解决它们(如果存在)时,才需要执行此操作。相反,您想要做相反的事情:将test合并到master。这就是我首先结帐master然后合并test

  2. 的原因
  3. 将分支推送到GitHub并在GitHub仓库中创建一个Pull Request。然后,当您合并PR时,GitHub上的master将会更新,您需要将更改恢复到本地仓库:

    $ git checkout master
    $ git pull origin master
    
  4. P.S。如果愿意,您可以在PyCharm中执行所有这些命令的等效操作。

答案 1 :(得分:0)

是的。您必须手动合并分支。因为在当前状态下,您的仓库中有两个分支。因此,如果您要将新分支合并到master分支,则

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

这应该可以完成工作。