如何使用TortoiseGit避免合并提交

21
问题在于当我使用"pull"和"push"命令到远程代码库时,会生成一个额外的提交记录并标记为我的名字。这个提交记录显示如下内容:Merge branch 'master' of ssh://.... 我找到一些答案说应该在Git Bash中使用命令git pull --rebase来避免这个提交记录。但我通常使用TortoiseGit,那么我该如何正确地在TortoiseGit中处理呢?

1
这并不是一个有用的评论。Tortoise Git 对于大多数标准的 SCM 操作都很好,包括 SVN 提交。 - enorl76
3个回答

26
自Tortoise Git 1.8版本起,此选项可供选择。 可以从获取命令中调用rebase选项:

TortoiseGit获取对话框突出显示启动-获取后重置-复选框


1
TortoiseGit总是在勾选此选项时启动rebase窗口,即使它是一个快进。是否可能仅在pull不是快进时启动rebase窗口? - pierrefevrier

14

从 TortoiseGit 2.0 开始,您可以在 git config 中设置 pull.rebasetrue(例如通过发出命令 git config pull.rebase true),当您拉取更改时 TortoiseGit 会自动将这些更改变基于当前分支。如果没有冲突或者拉取的更改能够快进到当前分支之上,您也不需要点击 "开始变基" 并且也不会看到变基对话框。

另一个选项已经被 enorl76 提到:在 fetch 或 pull 对话框中启用 "拉取后启动变基 (Launch Rebase after fetch)"。从 TortoiseGit 1.8.16 开始,如果拉取的更改能够快进到当前分支之上或者没有新提交,系统会询问您是否要打开变基对话框。

TortoiseGit fetch dialog highlighting Launch-Rebase-After-Fetch checkbox


8

你可以使用Git Sync(它基本上是一个git的瑞士军刀)。然后它有一个名为Fetch&Rebase的选项,它是从“Pull”项目中下拉的。如果您将其默认设置为前进,则将是该选项。这是一个非常酷的实用程序,我直到5分钟前才忽略了它。感谢其他答案,因为它帮助我找到了更好的答案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接