如何变基已经合并的提交
How to rebase already merged commits
我需要追溯 rebase
merged commits
从 master
到功能分支。
功能分支从master
分支出来(功能分支是图中的蓝线),然后功能分支上有多个提交(蓝点),然后master被合并提交回来到功能分支(而不是 rebased - master 是图片中的红线)。
所以我需要 "go back" 2 merge commits
并在保持功能分支完好无损的同时对它们进行变基。
您可以使用 git rebase -i 并在第二次和后续提交中将 "pick" 替换为 "squash" 或 "fixup"。
详细说明在这里:
https://git-scm.com/docs/git-rebase#_interactive_mode
在你这样做之后你需要推送到远程仓库(我认为用力)。
您还可以在与主分支拆分之前将您的分支重置为提交,然后将所有更改提交到 1 个压缩提交中。
之后,只需对 master 进行 rebase。
所以,在你的分支上:
git reset --soft <commit SHA>
git add <All changes>
git commit -m "<commit message>"
git rebase master
我需要追溯 rebase
merged commits
从 master
到功能分支。
功能分支从master
分支出来(功能分支是图中的蓝线),然后功能分支上有多个提交(蓝点),然后master被合并提交回来到功能分支(而不是 rebased - master 是图片中的红线)。
所以我需要 "go back" 2 merge commits
并在保持功能分支完好无损的同时对它们进行变基。
您可以使用 git rebase -i 并在第二次和后续提交中将 "pick" 替换为 "squash" 或 "fixup"。
详细说明在这里:
https://git-scm.com/docs/git-rebase#_interactive_mode
在你这样做之后你需要推送到远程仓库(我认为用力)。
您还可以在与主分支拆分之前将您的分支重置为提交,然后将所有更改提交到 1 个压缩提交中。 之后,只需对 master 进行 rebase。
所以,在你的分支上:
git reset --soft <commit SHA>
git add <All changes>
git commit -m "<commit message>"
git rebase master