Git分支--merged/--no merged和--squash选项
Git分支--merged/--no merged和--squash选项,git,merge,squash,Git,Merge,Squash,git分支--merged似乎不能很好地处理--squash 如果执行正常的git合并,那么git分支--merged会告诉您哪些分支已经合并。但是,如果使用--squash选项,则情况并非如此,即使生成的树是相同的 我怀疑这是git的缺陷,我想知道我是否遗漏了一些git fu,或者我是否误解了一些东西 简而言之:我想使用--squash,但也希望git告诉我,我挤压到另一个分支中的分支是否已被合并。从这里到那里是不可能的(正如指导者所说)。更准确地说,这没有意义 问题是,gitmerge--s
git分支--merged
似乎不能很好地处理--squash
如果执行正常的git合并
,那么git分支--merged
会告诉您哪些分支已经合并。但是,如果使用--squash选项,则情况并非如此,即使生成的树是相同的
我怀疑这是git的缺陷,我想知道我是否遗漏了一些git fu,或者我是否误解了一些东西
简而言之:我想使用--squash,但也希望git告诉我,我挤压到另一个分支中的分支是否已被合并。从这里到那里是不可能的(正如指导者所说)。更准确地说,这没有意义 问题是,
gitmerge--squash
实际上并没有进行合并。例如,假设您的分支历史如下所示(分支topic
和devel
):
但是如果使用git merge--squash主题
,则会得到一个新的提交(让我们将其标记为s
,用于squash):
H⬅ 我⬅ J图形中提交之间的箭头(?)不能在所有浏览器/操作系统中正确呈现。我看到一个问号。回答得好,谢谢你的解释。我认为git能够压缩提交,并且仍然执行三方合并,哦,好吧。我觉得gitmerge--squash
有点误导;我会选择一个专用的git壁球@EdwardThomson:是的,我试过一些箭。我想它更像是一种字体,而不是浏览器和/或操作系统。哦,好吧,我将返回到普通的旧ASCII,用于下一个图表:-)我从不使用git merge--squash,但我经常使用git log--first parent
。
H ⬅ I ⬅ J <-- topic
⬋
⬅ F ⬅ G
⬉
K ⬅ L <-- devel
H ⬅ I ⬅ J <-- topic
⬋ ⬆
⬅ F ⬅ G ⬆
⬉ ⬆
K ⬅ L ⬅ M <-- devel
H ⬅ I ⬅ J <-- topic
⬋
⬅ F ⬅ G
⬉
K ⬅ L ⬅ S <-- devel