相关疑难解决方法(0)

git的"rebase --preserve-merges"到底是做什么的(为什么?)

Git的命令文档rebase非常简短:

--preserve-merges
    Instead of ignoring merges, try to recreate them.

This uses the --interactive machinery internally, but combining it
with the --interactive option explicitly is generally not a good idea
unless you know what you are doing (see BUGS below).
Run Code Online (Sandbox Code Playgroud)

那么当你使用时会发生什么--preserve-merges?它与默认行为(没有该标志)有何不同?"重新创建"合并等意味着什么?

git git-rebase

328
推荐指数
3
解决办法
8万
查看次数

在root上重新生成并保持空提交

假设我有一个由三个提交组成的分支,其中一个是空的:

# On branch test
3208910 empty
85c949c bar
0c1a615 foo
Run Code Online (Sandbox Code Playgroud)

我想在根页面上重新定义它,从man页面看来,这--root --keep-empty正是我需要的.

然而,无论git rebase -i --rootgit rebase -i --root --keep-empty省略空承诺,让我看看这个计划,而不是:

pick 0c1a615 foo
pick 85c949c bar
Run Code Online (Sandbox Code Playgroud)

如何重新绑定整个分支并同时保留空提交?

PS我需要这个去除分支上的一些第一次提交,我设法通过这个SO答案中filter-branch描述的实现,但我仍然有兴趣知道是否能够做到这一点.我发现它是Git中的一个错误吗?很难相信这种行为是故意的,但我不确定.rebase

PPS我发现我可以手动编辑计划并添加pick 3208910.

git

11
推荐指数
1
解决办法
3127
查看次数

标签 统计

git ×2

git-rebase ×1