草庐IT

Git:如何 rebase 和压缩从分支到主控的提交?

我正在尝试rebase并压缩我从当前分支到主分支的所有提交。这是我正在尝试做的事情:gitcheckout-bnew-feature在我尝试之后进行几次提交:gitrebase-imaster在这种情况下,提交将保留在new-feature分支中gitcheckoutmastergitrebase-inew-feature它给了我和带有noop消息的编辑窗口。我知道命令:gitmerge--squashnew-feature但我目前正在学习rebase命令。 最佳答案 让我们完成这些步骤。1-我们创建一个新的功能分支gitcheck

Git:如何 rebase 和压缩从分支到主控的提交?

我正在尝试rebase并压缩我从当前分支到主分支的所有提交。这是我正在尝试做的事情:gitcheckout-bnew-feature在我尝试之后进行几次提交:gitrebase-imaster在这种情况下,提交将保留在new-feature分支中gitcheckoutmastergitrebase-inew-feature它给了我和带有noop消息的编辑窗口。我知道命令:gitmerge--squashnew-feature但我目前正在学习rebase命令。 最佳答案 让我们完成这些步骤。1-我们创建一个新的功能分支gitcheck

Git squash 在分支中间提交

我想在一个分支中间将几个提交压缩在一起,而不修改前后的提交。我有:A--B--C--D--E--F--G||masterdevorigin/master我想把它压缩成A--H--E--F--G||masterdevorigin/master其中H等同于B--C--D。我希望能够指定H的提交消息。A是已推送的最后一次提交,因此可以重写之后的所有提交而不会弄乱服务器。这个想法是在我快进master之前清理历史。我该怎么做?PS:请注意,在我的例子中,我实际上有超过3个提交要在中间挤压,但如果我可以用3个来完成,我应该可以用更多来完成。PPS:此外,如果可能的话,我更喜欢E、F和G保持不变的

Git squash 在分支中间提交

我想在一个分支中间将几个提交压缩在一起,而不修改前后的提交。我有:A--B--C--D--E--F--G||masterdevorigin/master我想把它压缩成A--H--E--F--G||masterdevorigin/master其中H等同于B--C--D。我希望能够指定H的提交消息。A是已推送的最后一次提交,因此可以重写之后的所有提交而不会弄乱服务器。这个想法是在我快进master之前清理历史。我该怎么做?PS:请注意,在我的例子中,我实际上有超过3个提交要在中间挤压,但如果我可以用3个来完成,我应该可以用更多来完成。PPS:此外,如果可能的话,我更喜欢E、F和G保持不变的

Git 反复 merge squash

我正在尝试在git中创建两个包含二进制文件的分支-一个“开发”分支和一个“稳定”分支。在我想将它们“发布”到稳定分支之前,开发分支可以对这些文件进行一些更改(并且稳定分支已重命名这些文件,以防相关)。我可以做一个正常的merge,这工作正常,但保留了太多的历史——当pull“稳定”分支时,来自“开发”分支的所有中间提交也被pull(因为它们是父提交)。但是我们谈论的是没有任何合理merge策略的二进制文件(除了他们的/我们的),所以开发分支上的文件的实际历史是无用的。当我pull“稳定”分支时,我得到这个:X-------------------Gstable//a---b---c--

Git 反复 merge squash

我正在尝试在git中创建两个包含二进制文件的分支-一个“开发”分支和一个“稳定”分支。在我想将它们“发布”到稳定分支之前,开发分支可以对这些文件进行一些更改(并且稳定分支已重命名这些文件,以防相关)。我可以做一个正常的merge,这工作正常,但保留了太多的历史——当pull“稳定”分支时,来自“开发”分支的所有中间提交也被pull(因为它们是父提交)。但是我们谈论的是没有任何合理merge策略的二进制文件(除了他们的/我们的),所以开发分支上的文件的实际历史是无用的。当我pull“稳定”分支时,我得到这个:X-------------------Gstable//a---b---c--

git - merge 到主分支时,在第一个分支被压扁后 merge 分支的分支

这是我在工作中经常处理的工作流程。gitcheckout-bfeature_branch#Dosomedevelopmentgitadd.gitcommitgitpushoriginfeature_branch此时,我的同事正在审查功能分支,但我想继续开发依赖于feature_branch的其他功能。因此,当feature_branch正在审查中时......gitcheckoutfeature_branchgitcheckout-bdependent_branch#Dosomemoredevelopmentgitadd.gitcommit现在我根据feature_branch上的代码

git - merge 到主分支时,在第一个分支被压扁后 merge 分支的分支

这是我在工作中经常处理的工作流程。gitcheckout-bfeature_branch#Dosomedevelopmentgitadd.gitcommitgitpushoriginfeature_branch此时,我的同事正在审查功能分支,但我想继续开发依赖于feature_branch的其他功能。因此,当feature_branch正在审查中时......gitcheckoutfeature_branchgitcheckout-bdependent_branch#Dosomemoredevelopmentgitadd.gitcommit现在我根据feature_branch上的代码

git - 当我所做的只是压缩提交时,为什么 git-rebase 会给我 merge 冲突?

我们有一个包含400多个提交的Git存储库,其中前几十个是大量反复试验。我们希望通过将许多提交压缩为单个提交来清理这些提交。自然,git-rebase似乎是要走的路。我的问题是它以merge冲突结束,而这些冲突并不容易解决。我不明白为什么应该有任何冲突,因为我只是在压缩提交(而不是删除或重新排列)。很可能,这表明我并不完全理解git-rebase如何进行挤压。这是我正在使用的脚本的修改版本:repo_squash.sh(这是实际运行的脚本):rm-rfrepo_squashgitclonereporepo_squashcdrepo_squash/GIT_EDITOR=../repo_s

git - 当我所做的只是压缩提交时,为什么 git-rebase 会给我 merge 冲突?

我们有一个包含400多个提交的Git存储库,其中前几十个是大量反复试验。我们希望通过将许多提交压缩为单个提交来清理这些提交。自然,git-rebase似乎是要走的路。我的问题是它以merge冲突结束,而这些冲突并不容易解决。我不明白为什么应该有任何冲突,因为我只是在压缩提交(而不是删除或重新排列)。很可能,这表明我并不完全理解git-rebase如何进行挤压。这是我正在使用的脚本的修改版本:repo_squash.sh(这是实际运行的脚本):rm-rfrepo_squashgitclonereporepo_squashcdrepo_squash/GIT_EDITOR=../repo_s