问题标签 [git-squash]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
8 回答
102175 浏览

git - 你如何使用 git format-patch 将提交压缩到一个补丁中?

我在一个分支上有八个提交,我想通过电子邮件发送给一些还没有 git 开明的人。到目前为止,我所做的一切要么给了我 8 个补丁文件,要么从一开始就开始给我分支历史中每个提交的补丁文件。我使用 git rebase --interactive 来压缩提交,但现在我尝试的一切从一开始就给了我无数的补丁。我究竟做错了什么?

0 投票
40 回答
2541106 浏览

git - 使用 Git 将我最后的 X 提交压缩在一起

如何使用 Git 将我最后的 X 提交压缩成一个提交?

0 投票
15 回答
846923 浏览

git - 如何将多个提交合并到另一个分支上作为单个压缩提交?

我有一个远程 Git 服务器,这是我想要执行的场景:

  • 对于每个错误/功能,我创建一个不同的 Git 分支

  • 我继续使用非官方 Git 消息在该 Git 分支中提交我的代码

  • 在顶级存储库中,我们必须使用官方 Git 消息对一个错误进行一次提交

那么如何将我的分支合并到远程分支,以便他们只为我的所有签入获得一次提交(我什至想为此提供提交消息)?

0 投票
8 回答
298687 浏览

git - 在推送 Git 之前合并多个提交

我的本地存储库中有一堆主题相似的提交。我想在推送到远程之前将它们组合成一个提交。我该怎么做?我认为rebase这样做,但我无法理解文档。

0 投票
3 回答
40253 浏览

git - Git rebase(合并壁球)我的功能分支到另一个分支

我正在寻找一个 git 命令来帮助我处理我的功能分支,当它们准备好进入 Master 时。这个 git 命令会将我在分支上的所有更改压缩到 master 之上的单个提交中。我今天这样做:

其中 4 是提交到 squash 的次数。但是,这需要我知道我有多少次提交。我今天通过运行:

然后计算提交。

我觉得好像应该有更好的方法来做到这一点。还是其他人也是这样做的?

0 投票
2 回答
19569 浏览

git - git合并壁球和反复发生的冲突

我有一个带有分支master的git 存储库。分支包含修改后的代码版本,我正在尝试将更改从到合并为:altaltmastermasteralt

合并导致冲突:

在我解决冲突并提交更改后,一切似乎都很好,但是当我git merge --squash master再次运行(不对任何分支进行任何更改)时,我会得到相同的冲突错误。

这是为什么?我错过了什么?

0 投票
1 回答
299 浏览

git - 如何修复此 git 提交日志?

我在 Bitbucket 上有一个存储库。c265825当我试图压缩提交时,我有点搞砸了提交日志0a1837e

在此处输入图像描述

试图压缩这些提交会导致0942142,它基本上是空的。我的意思是,如果我尝试查看该提交,它显示没有文件更改,这对于“合并”提交可能是正常的——我不知道。

显然我需要在推送到 Bitbucket 之前修复这样的问题,但事后我该如何修复它呢?我想 squash 0942142,如果可能的话c2658250a1837e它看起来像一个名为“删除未使用的文件”的单个提交。

PS:这是一个私人回购(目前),所以没有人取消任何这些更改(还)。

编辑: TheBuzzSaw 下面的回答对于压缩自0a1837e. 但是,我只想压缩这三个提交并保留其余的历史记录(屏幕截图是一个模型 - 不代表实际更改)。所以我不得不这样做:

现在我的提交日志被美化了:

在此处输入图像描述

0 投票
3 回答
761 浏览

git - 将非线性提交合并为一个提交(制作香肠)

考虑以下 git 历史:

我如何将21f05f9 738ae0a2535dca合并到一个提交中?

我尝试过git rebase -i 2535dca, picking2535dcasquashing 21f05f9and 738ae0a,但出现以下错误:

我不确定是否有办法在 rebase 的交互模式下0534049跳过提交。288ffd2

有没有更好的方法来做我正在做的事情?有什么陷阱吗?

编辑:

我开始明白的是,我真的不应该把自己放在需要非线性提交的地方,特别是如果这些提交都与一个文件有关。我可以看到一个提交可能会破坏代码或产生冲突的实例。

0 投票
1 回答
267 浏览

git - 如何合并两个不连续的提交

我想合并e5c1e1d627c6c6

怎么做 ?我想要一个更简单的方法。

因为如果它们之间有数百个提交,那么回滚然后重新提交会很麻烦。

截屏

当我跑git rebase --interactive 856c719

然后我在下面编辑了文件,保存后。

我有

2_dqa_streesful_server/.git/rebase-merge/stopped-sha: No such file or directory Cannot 'squash' without a previous commit

0 投票
2 回答
1427 浏览

github - Github repo squash 在 master 上提交

我正在使用 github 存储库,其中许多提交历史上都是“错误修复”、“这次真正的错误修复”、“确定最终错误修复”、“最终修复”。

这些都是直接提交给master的。我怎样才能压扁它们?

从他一年前的帖子开始——基本上听起来这很糟糕,想在 github 中压缩多个提交。过去一年有什么变化吗?