Git 在两个分支之间来回变基
Git rebase back and forth between two branches
首先我有以下3个分支。
1---2 (A)
|\
| 3 (B)
\
4 (C)
为了将 (C) 变基到 (B),我这样做:
git checkout C
git rebase B
结果是:
1---2 (A)
\
3 (B)
\
4 (C)
假设我在 (C) 中做了一些事情,所以我有:
1---2 (A)
\
3 (B)
\
4---5 (C)
现在我想将 (C) 重新设置为 (A),所以我会:
1---2 (A)
|\
| 3 (B)
\
4---5 (C)
你是怎么做到的?
在最后一步中,您不想执行标准变基,因为您想从 C
的历史记录中删除 3
。在这种情况下,您可以使用交互式变基:
git checkout C
git rebase -i A
在生成的编辑器中 window 找到提交行 3
,将其删除,保存文件并关闭编辑器。 git 然后将 4
和 5
变基到 A
(2
) 而忽略 3
.
首先我有以下3个分支。
1---2 (A)
|\
| 3 (B)
\
4 (C)
为了将 (C) 变基到 (B),我这样做:
git checkout C
git rebase B
结果是:
1---2 (A)
\
3 (B)
\
4 (C)
假设我在 (C) 中做了一些事情,所以我有:
1---2 (A)
\
3 (B)
\
4---5 (C)
现在我想将 (C) 重新设置为 (A),所以我会:
1---2 (A)
|\
| 3 (B)
\
4---5 (C)
你是怎么做到的?
在最后一步中,您不想执行标准变基,因为您想从 C
的历史记录中删除 3
。在这种情况下,您可以使用交互式变基:
git checkout C
git rebase -i A
在生成的编辑器中 window 找到提交行 3
,将其删除,保存文件并关闭编辑器。 git 然后将 4
和 5
变基到 A
(2
) 而忽略 3
.