我有以下用例.
现在我想将所有这20个提交合并为单个提交并将其移动到主线.我究竟能做到这一点?
谢谢提前,
Shantanu
请有人告诉我Git在合并两个分支时的历史方面.
如果我有两个分支都在积极开发并且都包含提交,这类似于以下时间轴:
Branch #1: ----(branch)----C1----------C2-------(merge)------C5
\ /
\ /
\ /
Branch #2: -----------C3----------C4
Run Code Online (Sandbox Code Playgroud)
一旦两个分支合并,分支1的历史如何看待C5(提交#5)?我的印象是Git将合并所有历史记录给我以下内容:
Branch #1: ----------------C1----C3----C2----C4--------------C5
Run Code Online (Sandbox Code Playgroud)
这是正确的理解吗?
如果是这样,在紧急情况下,如何撤消合并,因为分支#2的所有历史肯定会与分支#1的历史交织在一起.
我们使用单独的分支来处理非平凡的错误修复和功能.通过频繁执行,分支与主控保持同步git checkout <x>; git merge master.
我注意到在合并时,git会使用多条不相关的消息来污染日志文件.例如,git将添加所有提交消息,而不是单个"Merge <X> into Master"或"Merge Master into <X>".它与治理(砂处理过程)对主一个问题,因为开发过程中可能已经存在的一个分支的错误是不和是不是在主分支永远存在.
更糟糕的是,分支和主人之间的行为是不同的.将master合并到分支时,会生成类似于"将Master合并到<X>"的日志条目.但是,将分支合并为Master时,没有"将<X>合并到Master中".根据日志,它好像开发分支从未存在过,合并从未发生过.
我知道我必须做一些特别的事情才能使git按照预期行事; 即如何使用git merge --squash?(它的经典git modus operandi:采取简单的方法并使其变得困难).
我的问题是,如何--squash在合并期间进行默认操作?
feature我们有一个从创建的长期运行的分支develop。有些人已经工作了一个月feature(处理从其创建的子分支并合并回它),但从未与.featurefeaturedevelop
我今天正在尝试做git rebase develop,feature有太多冲突,似乎对于 git rebase 创建的每个新提交,总是存在冲突,但是如果仅比较第一个和最后一个提交,其中许多都不是问题。
feature在这种情况下,同步的最佳方式是什么develop?对于像这样的长期运行的功能分支,保持它们同步的最佳方法是什么?(如果我git rebase develop经常这样做并不断解决冲突,是不是很好?)