2
#
# Commands:
# p, pick <commit> = use commit
# r, reword <commit> = use commit, but edit the commit message
# e, edit <commit> = use commit, but stop for amending
# s, squash <commit> = use commit, but meld into previous commit
# f, fixup <commit> = like "squash", but discard this commit's log message
# x, exec <command> = run command (the rest of the line) using shell
# b, break = stop here (continue rebase later with 'git rebase --continue')
# d, drop <commit> = remove commit
# l, label <label> = label current HEAD with a name
# t, reset <label> = reset HEAD to a label
# m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]
# .       create a merge commit using the original merge commit's
# .       message (or the oneline, if no original merge commit was
# .       specified). Use -c <commit> to reword the commit message.
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.

使用提交哈希注释掉行与使用 DROP 关键字相同吗?
我想重新设置我的拉取请求,以便它只提交一个提交。

4

3 回答 3

3

drop的,删除的行都将导致删除提交。从文档

要删除提交,请将命令“pick”替换为“drop”,或者只删除匹配的行

但也有细微的差别。例如:

  1. 删除所有行将中止 rebase,所以这与drop all不同
  2. 当缺少行时,可以启用一个检查以警告/错误:

    rebase.missingCommitsCheck:如果设置为“warn”,如果某些提交被删除(例如,一行被删除), git rebase -i 将打印一个警告,但是 rebase 仍将继续。如果设置为“error”,它将打印先前的警告并停止rebase,然后可以使用 git rebase --edit-todo 来纠正错误。如果设置为“忽略”,则不进行检查。要在没有警告或错误的情况下删除提交,请使用待办事项列表中的 drop 命令。默认为“忽略”。

于 2019-11-27T03:34:14.447 回答
2

使用提交哈希注释掉行与使用 DROP 关键字相同吗?

是的

我想重新设置我的拉取请求,以便它只提交一个提交。

我假设您仍然想保留所有更改,但将它们全部合并到一个大提交中。在这种情况下,您应该做的是将pick每个提交行(除了第一行)开头的fixup.

例如,假设您的 rebase 提示如下所示:

pick b761975 Start a big project
pick 5239708 Oops fix a bug in the project
pick a85ecbe Oops fix another bug
pick 17a2131 Finally the big project is done

如果您想将所有内容合并到一个名为“开始一个大项目”的大型提交中,请按如下方式进行编辑:

pick b761975 Start a big project
fixup 5239708 Oops fix a bug in the project
fixup a85ecbe Oops fix another bug
fixup 17a2131 Finally the big project is done

pick如果您还想reword更改大提交上的提交消息,您可以将第一个更改为。

于 2019-11-27T03:46:22.173 回答
0

是的。两者都是相同的(评论一行或删除关键字)。git 文档告诉了同样的事情。

有关更多信息,请参阅git rebase 文档

要删除提交,请将命令“pick”替换为“drop”,或者只删除匹配的行。

于 2019-11-27T04:08:42.050 回答