如何使用TortoiseGit重新排序提交(rebase)

Sam*_*uel 7 git version-control git-rebase tortoisegit

我想将几个单一提交推送到我们的主git存储库.在做了一些阅读之后虽然听起来我必须重新排序提交才能做到这一点,因为git只会将所有提交推送到指定的提交.首先,我真的不明白为什么这不仅仅是内置于git(我是一个git新手).无论如何,我需要重新排序提交,我正在使用TortoiseGit.我已经找到了如何进入rebase菜单,但我不知道选择哪个选项.要进入rebase菜单我:

  1. 右键单击目录并选择TortoiseGit/Show Log
  2. 浏览并选择我想要重新排序的提交.
  3. 选择"Rebase"master"on this".

我遇到了一个对话框,但我不知道这些字段是什么意思.

首先,有分支领域,我看到主人和一些遥控器选项.我没有任何分支机构.我克隆了一个存储库,到目前为止一直在从本地克隆工作,为什么有一个分支选项?

其次,有一个小按钮,左右箭头相互叠加.这个按钮是什么用的?

第三,有一个上游字段,默认情况下它选择了存储库的SHA.当我点击该字段时,我会看到FETCH_HEAD,master和一些遥控器选项.

我希望看到一个提交列表,我可以上下移动我的提交.通过检查Force Rebase选项,我可以看到提交列表.这是我需要做的吗?我有什么打算,我以为我只是想做一个普通的老底板?

再次,我是一个git新手,任何帮助表示赞赏.

小智 11

你走在正确的轨道上.Force Rebase是您需要使用的选项.使用Force Rebase选项查看提交后,选择提交并使用向上/向下按钮重新提交提交.根据需要订购后按下"开始""rebase"按钮.

关于为什么需要选择Force Rebase; Rebase通常在您希望将当前分支基于较新的提交时完成.由于您当前的分支已经基于您选择的提交,因此没有任何内容可以重新定义.在您的情况下,您只是尝试重新排序提交而不是重新定位.使用rebase没有错.只需要明确选择Force Rebase.


Sam*_*uel 1

这是一个解决方案。这是我发现的:

上游和下游的定义:“下游”和“上游”的定义

FETCH_HEAD 的定义:在 Google 中搜索“git 中的 FETCH_HEAD 是什么”。

Can I use git command line tools with TortoiseGit?:我可以同时使用命令行 Git 工具和 TortoiseGit 吗?

如何使用 git 重新排序提交:http ://blog.dennisrobinson.name/reorder-commits-with-git/

在这篇博文中,他建议使用:

git rebase -i HEAD~3
Run Code Online (Sandbox Code Playgroud)

我用了

git rebase -i <SHA_of_oldest_commit>
Run Code Online (Sandbox Code Playgroud)

反而。这将为您提供从 head 到 SHA_of_oldest_commit 的提交列表。为了重新排序提交,我只是按照我想要的方式重新排序了行,然后保存并关闭了文件。