获取后Git合并 - 究竟如何?

Maj*_*ons 42 git

我从各种来源读到,获取然后合并通常是一个更好的主意,而不是简单地拉,因为它允许更精细的控制.也就是说,我还没有找到实际的方法.例证:

在我的一个GitHub存储库的主分支中对一些代码进行了一些小改动.我能够获取它,但我不知道如何实际合并与我的本地主分支的差异. git branch列出我拥有的所有本地分支,但没有任何东西表明要合并的内容.

那么,它只是git merge master或类似的东西git merge origin/master?我错过了什么?

Car*_*rum 42

git merge origin/master应该管用.由于master通常是跟踪分支,您也可以git pull从该分支执行,它将为您执行提取和合并.

如果您的本地更改master没有反映出来origin,您可能需要git rebase origin/master确保您的提交是"在顶部".


Joh*_*ter 13

我通常这样做:

git merge --ff-only @{u}
Run Code Online (Sandbox Code Playgroud)

其中说,"只从上游跟踪分支进行快速合并." 这很好,因为如果它失败了,那么我知道我介绍了一些master不是上游的东西.我有别名ff,只是为了更容易打字.

如果有更改,并且您只想合并它们,则可以执行以下操作:

git merge @{u}
Run Code Online (Sandbox Code Playgroud)

哪个将合并到上游分支.但是,如果您想要一个更清晰的历史记录(并避免将"合并'原点/主人''转换为'主''提交,那么您可能需要考虑改变:

git rebase @{u}
Run Code Online (Sandbox Code Playgroud)

当然,你可以origin/master代替@{u}任何这些例子.


max*_*zig 8

命令

git pull $some_url
Run Code Online (Sandbox Code Playgroud)

相当于

git fetch $some_url
git merge FETCH_HEAD
Run Code Online (Sandbox Code Playgroud)

另请参阅git-pull(1)手册页了解详细信息,尤其是描述的前两段。