VSCODE:我想从VSCode执行“git merge --squash”。

14

我有一个主分支,它是生产分支,所以我创建了几个其他的分支来进行修复和缺陷处理。我在这些分支中进行了多次更改,因此在这些分支中提交了多次。根据政策,我必须为修复在主分支中创建一个单一的提交,但是当我将我的更改合并到主分支时,所有的提交也被合并,并反映在历史记录中。

我想知道在VSCode中是否有选项可以从我的缺陷分支压缩合并到主分支,这样我就可以在主分支上创建一个单一的提交并推送。 我知道如何在git bash中执行此操作,但是在VScode中是否有我不知道的替代方法?


你在本地合并分支吗? - Raju
是的,我将我的缺陷分支合并到本地主分支,并进行了git push,但根据公司政策,我们需要为每个缺陷创建一个单独的提交。目前我正在使用git命令行来完成这个过程。我正在寻找VSCode的替代方案,因为我用它进行开发。 - livesamarthgupta
1
为什么不为这个特定的分支添加一个.gitconfig属性,总是压缩呢?我认为下载并用扩展满足每个需求会让你受益匪浅,特别是如果你只使用一个像这样的功能扩展。这样它就在你的gitconfig中,并且无论你使用哪个UI或应用程序都会应用。 - soulshined
1
另一种解决方案在这里 - Benyamin Jafari
1个回答

27
git graph 扩展有这个功能 - 使用示例 上面的录屏假设当前所在的分支是你想要合并到的分支(例如,在录屏中该分支称为 master),我们要合并的分支是被右键单击的那个分支(例如,在录屏中该分支称为fix_branch)。 由于这是一次混合合并(squash merge),所以 fix_branch 实际上并没有被合并到 master 中,而是在 master 上创建了一个新的混合合并提交。这个新提交只标记了前一个提交作为父提交,而不是像普通非混合合并那样有两个父提交。

你能否详细解释一下吗?在做这件事时,你所处的分支是什么?你在完成这个之后会做什么? - Daniel Tkach
1
在录制下面添加了几段文字。如果这足够清晰明了,或者还有其他遗漏的地方,请告诉我。 - Omer Tuchfeld
有没有一种方法可以拥有“标准/常见”的2个父提交的行为?我的意思是,在修复分支上进行第一次提交以压缩开发期间完成的所有提交,然后进行第二次提交以实际合并fix-branch到master分支上?拥有所有这些分支以自己结束而不返回主分支的图表真的伤害了我的强迫症。 - fudo
听起来你所描述的是交互式变基,将最后n-1个提交压缩成一个,然后进行非快进合并,这样说对吗?我怀疑GUI不能一键完成,尽管使用GUI分步骤完成不应该太难。 - Omer Tuchfeld

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接