标签: git-squash

git与--squash合并后比较分支

我有一个父分支A和一个子分支B。在分支B中,我有两个单独的提交。我像这样将南瓜中的B分支合并到A中

git merge --squash B 
Run Code Online (Sandbox Code Playgroud)

当我将分支A与分支B进行比较时:

git log A..B
Run Code Online (Sandbox Code Playgroud)

它显示了来自分支B的两个提交都未合并。我如何将其与父分支A的压缩提交进行比较?这样两个分支之间的响应就不会有差异

谢谢

git git-merge git-squash

3
推荐指数
1
解决办法
542
查看次数

如何使用SmartGIT在一次提交中将多个提交从分支合并到主服务器?

我有一个名为work_in_progress的分支,用于调试和测试具有许多小提交的代码.所有这些都有冗余的提交消息.当我完成时,我想将壁球合并到分支.通常,这是使用--squash参数进行合并时的单个命令.

但是我如何使用SmartGIT做到这一点

这里的文档如何执行squash合并似乎是错误的,因为没有选项"分支由选定的提交及其祖先组成".

此处的文档如何执行常规合并和压缩合并根本不起作用.我试过了,我仍然看到日志中的所有小提交.我之后可以删除work_in_progress分支,一切都很好,但是我希望在分支的历史记录中使用单个提交消息进行单个提交.


编辑:这是我的提交对话框中的屏幕截图.我想我错过了"简单提交"选项?!也许我不明白说明^^ 在此输入图像描述


编辑2:这是日志的屏幕截图.顶部的第二次提交是使用SmartGIT完成的.您可以看到所有中间提交(包括消息)在历史记录中都可见.该分支称为XYZ_work_in_progress.最后(最顶层)提交是使用"git merge --squash ABC_work_in_progress"完成的,但所有提交都被吞下,因此它是一个干净的历史记录.来自分支的所有工作都会累积到一个提交中,并带有一条消息:-) 在此输入图像描述

git merge smartgit git-squash

3
推荐指数
1
解决办法
2687
查看次数

在GitHub中合并+压缩PR至主后,如何同步git dev分支?

因此,GitHub 能够合并 PR的+ squash提交

我们遵循从dev-> 中PR代码的过程master

以前,我只是在“合并” PR,但是会生成一个新提交,内容为:“ Merge Pull Request #1 from foo/bar”。:(嘘...

所以我想我可以Squash Commits和GH一起尝试新事物。这创建了一个新提交,而我之前的所有提交均被压缩。好的,到目前为止很好。

回到我的dev分支(我的开发机器上)..拉下来upstream/master(这是在PR和壁球合并发生的事情)),现在又增加了承诺,我当地的历史!它并没有显示“哦..哇。你太过分了..让我们同步”。它只是合并了。

因此,Squash + Merge按钮压缩了4次提交,并将其替换为1 ... ... upstream/master在我的本地主机上,现在我的本地主机上还有4个提交,而Squashed-commit PR做了一个新的提交,即“ Merge branch master .. blah ... noise ..spam” commit :(: (:(

在发生壁球合并之后,我应该做些特殊的技巧/工作流程以确保我的dev分支正确同步吗?就像..每个人devupstream/master撤回其本地主机并进入(新创建的)dev分支之前,是否只是删除其本地主机分支?

请记住:这里的目标是避免那些笨拙的“合并请求2” 合并气泡消息。

还是人们暂时只是通过CLI进行此操作,直到GitHub学习如何进行此操作:(

git merge github git-squash

3
推荐指数
1
解决办法
2208
查看次数

如何重置rebase壁球?

如何重置git squash?

我正在使用PhpStorm.我从最近14天的工作中榨取了压力.提交"HEAD DEV Refactor gulp file"内部有50多个压缩提交.

如何再次显示/取消它们?

在此输入图像描述

git phpstorm git-squash

3
推荐指数
1
解决办法
2394
查看次数

git 注释压缩的提交

我一直对“压制”或重写历史持怀疑态度,现在我几乎确信我应该在我管理的存储库中禁止这种做法。但也许有人可以回答这个问题,并为我的壁球冠军同事们拯救这一天。

\n\n

我刚刚遇到一行代码,我想了解背后的推理,所以我使用git annotate找出它是谁写的以及为什么。但它指向一个“压缩”的提交,一长串关于无数功能和错误修复的提交消息标题,但没有详细信息。不太有帮助。

\n\n

“哦,但是总会有转发的,”我得到了保证。“信息实际上永远不会在 git 中丢失!” 好的,很高兴听到!但我尝试了git reflog <squashed-commit-hash>,但根本没有输出\xe2\x80\x94没有帮助。我也尝试过git rev-list <squashed-commit-hash>,并获得了数百个哈希值的列表,并在手动检查其中一些之后git show,我得出结论,它们不是被压扁的部分\xe2\x80\x94也没有帮助。

\n\n

那么实际上是否有可能找出哪一个提交对该行代码做出了贡献,并查看该提交的整个消息?是否可以通过单个 git 命令来完成,而不必成为 bash 大师?或者这些信息实际上已经在 git 中丢失了吗?

\n

git git-squash git-blame

3
推荐指数
1
解决办法
1251
查看次数

Git:如何将现有的`merge`转换为`merge --squash`?

我执行了多次merge提交,但它们应该是merge --squash相反的.解决冲突花了一天多的时间,所以我不能手工重做合并.

有没有办法将其转换mergemerge --squash

git merge git-merge squash git-squash

2
推荐指数
1
解决办法
1339
查看次数

壁球2落实为1

我在本地有两个提交:

commit adae40c5e2b69a41447b08cc3dcb77003611fbbe
Author: Me
Date:   Thu Mar 21 14:17:35 2019 +0000

    1.0.0

commit ceaa65ea06f48dc24554a6f798aae2d668f3a43d
Author: Me
Date:   Fri Feb 1 10:04:36 2019 +0000

    first commit
Run Code Online (Sandbox Code Playgroud)

我该如何压榨这些消息,以使该消息只有一次提交1.0.0

我尝试了以下方法,但都没有为我工作:

git rebase -i HEAD~2
git rebase -i master
Run Code Online (Sandbox Code Playgroud)

git git-rebase git-squash

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

Git rebase交互式错误

我想合并我的分支(让我们称之为my_branch)来掌握.它有一个文件在我的github.com上的pull请求中显示为合并冲突.在重新定位之前我想要压缩我的提交(11次提交).所以我做了这样的事情:

# On master
git pull
git checkout my_branch
# on my_branch
git fetch
git rebase -i origin/master
Run Code Online (Sandbox Code Playgroud)

这打开了一个vim编辑器,我的所有提交 - 我保留了第一个,pick并将其余部分更改为s (squash)

pick commit1
s commit2
s commit3
.
.
.
s commit 11
Run Code Online (Sandbox Code Playgroud)

当我保存并退出时,我收到错误 - error: could not apply e7ce468... 'commit1 message'

任何人都可以向我解释问题是什么?我知道我不能因为挤压而变废,因为每一次提交都需要解决.

git git-rebase git-squash

0
推荐指数
1
解决办法
895
查看次数