假设我有一个名为develop的私有主题分支,在master之前有2次提交。
git pull origin master
做了什么?
从本地开发中的远程主机拉出所有内容并合并它?拉出本地主分支中的所有内容并合并它?
有没有办法在没有git checkout master
的情况下首先更新master?
答案 0 :(得分:81)
git pull origin master
将master分支从远程调用origin拉入当前分支。 它只会影响您当前的分支,而不会影响您当地的主分支。
它会给你历史看起来像这样:
- x - x - x - x (develop)
\ /
x - x - x (origin/master)
您当地的主分支机构与此无关。 git pull
基本上是git fetch
和git merge
的组合;它获取远程分支,然后将其合并到当前分支中。它像其他任何一样合并;它没有做任何神奇的事情。
如果您想更新本地主分支,您别无选择,只能查看它。合并到未检出的分支是不可能的,因为Git需要工作树才能执行合并。 (特别是,为了报告合并冲突并允许您解决它们,它是绝对必要的。)
如果您碰巧知道拉入主人会是一个快进(即您在本地主分支中没有提交不是原始人的主人),您可以解决,{{ 3}}
答案 1 :(得分:3)
提交后,使用
更改分支git add -A
git commit -m <message>
然后你可以这样做:
git pull origin master
进入你的分支,这将使你的提交保持在主拉的顶部。您的分支现在甚至可以使用master +您的提交。所以,你现在可以做到:
git push
并且git会将您的更改与主提交一起推送到您的分支。您可以轻松地将其合并到Github上的master中。