标签: git-squash

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

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

git squash git-squash

3294
推荐指数
38
解决办法
147万
查看次数

如何使用git merge --squash?

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

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

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

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

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

git git-merge git-squash

1101
推荐指数
8
解决办法
52万
查看次数

在推入Git之前组合多个提交

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

git git-squash

373
推荐指数
7
解决办法
21万
查看次数

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

我在一个分支上有八个提交,我想通过电子邮件发送给一些不是git开悟的人.到目前为止,我所做的每件事都给了我8个补丁文件,或者从一开始就开始给分支历史上每次提交的补丁文件.我使用git rebase --interactive来压缩提交,但是现在我尝试的所有内容从一开始就给了我数以万计的补丁.我究竟做错了什么?

git format-patch master HEAD # yields zillions of patches, even though there's 
                             # only one commit since master
Run Code Online (Sandbox Code Playgroud)

git patch squash git-squash

162
推荐指数
7
解决办法
9万
查看次数

Cherry-pick并将一系列提交压缩到子目录或子树中

我怎么能告诉樱桃选择一个被压缩的提交范围?

或者换句话说,将两个提交之间的差异应用于存储库的当前状态?

以下就不能正常工作(摘樱桃没有--squash选项):

git cherry-pick --squash e064480..eab48b59c
Run Code Online (Sandbox Code Playgroud)

注意:我的用例是在一个子树场景中 - 在任何人开始争论我不应该压制之前.

以下工作,但后来我有一系列单独的提交.之后,我可以使用交互式rebase手动压缩它们.

git cherry-pick -X subtree=vendor/package e064480..eab48b59c
Run Code Online (Sandbox Code Playgroud)

有没有什么方法可以挤压作为樱桃挑选的一部分?

git git-cherry-pick git-squash

53
推荐指数
4
解决办法
2万
查看次数

Git rebase(Merge Squash)我的功能分支到另一个分支

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

git rebase origin/master
git rebase -i HEAD~4
Run Code Online (Sandbox Code Playgroud)

其中4是壁球的提交次数.但是,这需要我知道我有多少提交.我今天这样做是通过运行:

git log HEAD...origin/master
Run Code Online (Sandbox Code Playgroud)

然后计算提交.

我觉得应该有更好的方法来做到这一点.或者这也是其他人如何做到的?

git git-merge git-squash

52
推荐指数
2
解决办法
4万
查看次数

Git:如何压缩两者之间合并提交的提交?

我正在开发一个功能分支.

  1. 做了几个提交.压缩提交.
  2. 推送更改远程分支.有冲突.
  3. 合并来自主要的更改,已解决的功能分支上的冲突.(git fetch origin master> git merge FETCH_HEAD>手动解决冲突> git commit> git push)
  4. 我做了一个提交.

因此,当前的提交历史记录如下所示.从现在到旧:

  1. 提交3
  2. 承诺M yyy(合并)
  3. 提交2

在将我的功能分支合并到主控之前,如何将3个提交压缩为1?

git merge git-squash

45
推荐指数
4
解决办法
3万
查看次数

Git壁球在分支中间提交

我想在分支中间将几个提交压缩在一起而不修改前后的提交.

我有 :

A -- B -- C -- D -- E -- F -- G
|                             |
master                        dev
origin/master
Run Code Online (Sandbox Code Playgroud)

我想把它压成

A -- H -- E -- F -- G
|                   |
master              dev
origin/master
Run Code Online (Sandbox Code Playgroud)

在哪里H相当于B -- C -- D.我希望能够指定提交消息H.A是最后一次提交,因此所有提交后都可以重写,而不会弄乱服务器.我的想法是在快进之前清理历史master.

我怎样才能做到这一点 ?

PS:请注意,在我的情况下,我实际上有超过3次提交在中间压缩,但如果我能用3做,我应该能够做更多.

PPS:另外,如果可能的话,我更喜欢一个解决方案E,F并且G保持不变(主要是关于提交日期).

git git-squash

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

Gitflow:在从发布分支合并到master时,我应该压缩提交吗?

我将合并我的发布分支到master,我想知道是否应该在合并到master时将提交从开发转换为单个合并提交.

关于git flow的一般文档包含Atlassian页面中的这类数据:

在此输入图像描述

在这些图中,只有单个提交出现在master上,而不是所有提交的提交.

实际上,我喜欢有一个只发布提交的主分支的想法.

合并成主人时,我应该保留所有提交的提交吗?或者在关注Gitflow时,在合并到master之前压缩提交?

git git-flow git-squash

23
推荐指数
3
解决办法
6257
查看次数

Git - 压扁整个分支 - 一行压扁命令

当我正在处理新代码时,我会做很多小提交来跟踪我的更改.但是,我的公司更喜欢在一次提交中提交每个功能.所以解决方案是将我的整个分支压缩到一个提交.

我怎么压扁整个分支而不使用git rebase --interactive,然后改变picksquash对所有提交?

git squash git-squash

16
推荐指数
5
解决办法
6750
查看次数

标签 统计

git ×10

git-squash ×10

squash ×3

git-merge ×2

git-cherry-pick ×1

git-flow ×1

merge ×1

patch ×1