我有一个远程Git服务器,这是我想要执行的场景:
对于每个bug /功能,我创建了一个不同的Git分支
我继续使用非官方的Git消息在Git分支中提交我的代码
在顶级存储库中,我们必须使用官方Git消息对一个错误进行一次提交
那么如何将我的分支合并到远程分支,以便他们只为我的所有签到提交一个提交(我甚至想为此提供提交消息)?
我在本地存储库上有一堆提交,它们在主题上相似.在推送到遥控器之前,我想将它们组合成一个提交.我该怎么做?我认为rebase这样做,但我无法理解文档.
我在一个分支上有八个提交,我想通过电子邮件发送给一些不是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) 我怎么能告诉樱桃选择一个被压缩的提交范围?
或者换句话说,将两个提交之间的差异应用于存储库的当前状态?
以下就不能正常工作(摘樱桃没有--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命令来帮助我准备好进入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)
然后计算提交.
我觉得应该有更好的方法来做到这一点.或者这也是其他人如何做到的?
我正在开发一个功能分支.
因此,当前的提交历史记录如下所示.从现在到旧:
在将我的功能分支合并到主控之前,如何将3个提交压缩为1?
我想在分支中间将几个提交压缩在一起而不修改前后的提交.
我有 :
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保持不变(主要是关于提交日期).
我将合并我的发布分支到master,我想知道是否应该在合并到master时将提交从开发转换为单个合并提交.
关于git flow的一般文档包含Atlassian页面中的这类数据:
在这些图中,只有单个提交出现在master上,而不是所有提交的提交.
实际上,我喜欢有一个只发布提交的主分支的想法.
合并成主人时,我应该保留所有提交的提交吗?或者在关注Gitflow时,在合并到master之前压缩提交?
当我正在处理新代码时,我会做很多小提交来跟踪我的更改.但是,我的公司更喜欢在一次提交中提交每个功能.所以解决方案是将我的整个分支压缩到一个提交.
我怎么压扁整个分支而不使用git rebase --interactive,然后改变pick到squash对所有提交?