Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用git rebase跳过/删除提交_Git - Fatal编程技术网

使用git rebase跳过/删除提交

使用git rebase跳过/删除提交,git,Git,假设我有以下承诺: E (HEAD -> dev, origin/dev) | D | C | B | A 现在我想删除或跳过提交B,使其看起来像这样: E (HEAD -> dev, origin/dev) | D | C | A 我可以做git checkout C然后git rebase A?这会得到预期的结果吗。我找不到与你的问题完全相同的答案,所以我冒昧地给出一个答案。这里您需要的工具是交互式重基。从当前分支机构的负责人处运行以下命令: git rebase -i HE

假设我有以下承诺:

E (HEAD -> dev, origin/dev)
|
D
|
C
|
B
|
A
现在我想删除或跳过提交B,使其看起来像这样:

E (HEAD -> dev, origin/dev)
|
D
|
C
|
A

我可以做
git checkout C
然后
git rebase A
?这会得到预期的结果吗。

我找不到与你的问题完全相同的答案,所以我冒昧地给出一个答案。这里您需要的工具是交互式重基。从当前分支机构的负责人处运行以下命令:

git rebase -i HEAD~5
这将出现一个屏幕,显示最近的5次提交,看起来像这样(从最早的提交第一次到最新的提交最后一次):

现在保存并关闭编辑器。Git应该自动启动rebase,在本例中,这意味着在新基(即D提交)之上重放C和A提交。您可能会遇到合并冲突,您必须解决这些冲突


请注意,您正在执行的操作对历史记录不太友好,如果您的分支已被其他人使用,则应避免以这种方式重写历史记录。

git rebase-i HEAD~4
,然后
删除要跳过的提交?或者您可以
还原它,以避免重写历史。这是否回答了您的问题?
pick <SHA-1 for A> commit message for A
pick <SHA-1 for B> commit message for B
pick <SHA-1 for C> commit message for C
pick <SHA-1 for D> commit message for D
pick <SHA-1 for E> commit message for E
pick <SHA-1 for A> commit message for A
pick <SHA-1 for C> commit message for C
pick <SHA-1 for D> commit message for D
pick <SHA-1 for E> commit message for E