Git 从提交 N 变基到提交 B
Git rebasing from commit N to commit B
是否可以仅对 N 个提交列表中的特定提交进行变基?
我总共有 36 次提交,我想从提交 36 压缩到提交 12 让我们说(从 36 到 12 它们都是一个用户的提交并且都是针对单个功能),该怎么做?
您可以使用 interactive rebase 来执行此操作。
git checkout <branch_with_commits>
git rebase -i HEAD~36
这将打开一个编辑器,其中包含重新设置基线的所有提交以及为每个提交执行的操作,如下所示:
pick f7f3f6d changed my name a bit
pick 310154e updated README formatting and added blame
pick a5f4a0d added cat-file
# Rebase 710f0f8..a5f4a0d onto 710f0f8
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#
# Note that empty commits are commented out
对于您要压缩的提交,将操作更改为压缩(或您要执行的其他操作)。保存并关闭编辑器以应用更改。
是否可以仅对 N 个提交列表中的特定提交进行变基?
我总共有 36 次提交,我想从提交 36 压缩到提交 12 让我们说(从 36 到 12 它们都是一个用户的提交并且都是针对单个功能),该怎么做?
您可以使用 interactive rebase 来执行此操作。
git checkout <branch_with_commits>
git rebase -i HEAD~36
这将打开一个编辑器,其中包含重新设置基线的所有提交以及为每个提交执行的操作,如下所示:
pick f7f3f6d changed my name a bit
pick 310154e updated README formatting and added blame
pick a5f4a0d added cat-file
# Rebase 710f0f8..a5f4a0d onto 710f0f8
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#
# Note that empty commits are commented out
对于您要压缩的提交,将操作更改为压缩(或您要执行的其他操作)。保存并关闭编辑器以应用更改。