【发布时间】:2017-03-14 05:05:43
【问题描述】:
我在重新构建 git 提交时遇到了问题。问题是:
pick A
pick B <- mine
pick C
pick D
pick E <- mine
pick F <- mine
我想将我的所有提交压缩为一个。我打算这样做:
pick A
pick C
pick D
pick B <- mine
squash E <- mine
squash F <- mine
但这不起作用,因为如果我执行此git rebase,则提交 A、C 和 D 也将是我的。如果我只是删除从 A 到 D 的行,只留下:
pick B <- mine
squash E <- mine
squash F <- mine
提交 A、C 和 D 将被删除。我该如何处理?
谢谢
【问题讨论】:
-
“因为如果我执行这个 git rebase,commmit A、C 和 D 也将是我的”不,不应该是这样。您将成为他们的提交者,但不是作者。
-
但是我认为对于一个操作系统项目的 PR 来说,在你没有做过的事情上成为提交者会有点奇怪,对吧?
-
并非如此。 Committer 并不是特别重要的信息,如果你正在重写提交,那么假装你没有这样做没有多大意义。不过,在这种特殊情况下,您可以改用
A并保存一个更改(因为您没有更改它)。 -
我看到的另一个问题是:在 github 中,我看到最后 3 次提交是我的(B、E、F)。 git log 也一样。但是当我使用
git rebase -i HEAD~3时,我的提交与git log的顺序不同。 -
rebase 显示从最旧到最新的提交。日志正好相反。
标签: git github git-rebase