GitHub Desktop中按钮背后的git命令文档不够完整,因此我曾进行过调查。我得出结论,"Update from..."按钮会发出
git merge --no-ff -m "Merge <auto_text> <branch_name>" <branch_name>
或者在 GitHub Desktop GUI 中将“Compare”分支设置为<branch_name>
,或其基本相似的内容。
我是通过以下方式得出结论的:
首先,我将一个我控制的仓库 fork 到了我的 GitHub 帐户中。然后,我从我的 GitHub 帐户克隆了该仓库到本地机器上。接下来,我对(原始)主远程仓库进行了一些小改动,并使用git fetch <remote_name_assigned_to_main_repo>
(此处为<remote_name>
),将单个提交带到本地机器上。在这个fetch
之后,“Update from...”按钮变亮了。
这样就建立了这样的一个场景:我本地仓库中检出的分支 master
比主远程仓库中的分支 master
慢一次提交。默认情况下,git merge <remote_name>
将会产生一个快进合并(没有合并提交)。
但是,使用“Update from...”按钮会导致以下reflog
条目:
HEAD@{0}: merge <remote_name>/master: Merge made by the 'recursive' strategy.
而且在 日志
中有一个合并提交:
Merge remote-tracking branch '<remote_name>/master'
(根据手册,“递归”策略是在合并一个分支时的默认合并策略。)
我还设置了一个场景,在这种情况下,git rebase
可能是一个选项,但看到了相同的合并行为。
只需进入“分支”菜单,然后选择“合并到当前分支...”,选择您想要从中获取“更新”的分支即可。
git merge <defaultBranch>
命令。在GitHub Desktop存储库的问题中,官方评论如下:update-branch
消息。然后,updateBranch
方法会查找您的默认分支(通常为master
)。应用程序中的Git操作使用Git命令行,因此我们在应用程序中执行的只是将git merge master
合并到当前分支中的操作。
git revert
撤消,而快进式合并或变基则不能。 - SoFarther