Git fast forward VS no fast forward merge
Git合并允许我们执行快进和非快进分支合并。什么时候使用快进合并,什么时候不使用快进合并?
当你想有一个清晰的概念你的特色分支时,选择是非常有用的。所以,即便没有发生过,FF是可能的——你仍然想要在主线上的每一件事都符合一个特征。所以你把一个特色分支当作一个单一的单位来处理,把它们当作一个单一的单位来处理。当你与
如果你不在乎这些事——你可能会在任何可能的地方离开。你会有更多的感觉工作流程。
例如,本条的权威认为,
考虑一下一系列的"特征"分支机构共同形成一个新特征的情况:如果你只是"Git Merge Feature"、"U Branch"没有
MGX1〔0〕
我可以给项目提供一个共同的例子。
这里,选项
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | $ git checkout master $ git checkout -b newFeature $ ... $ git commit -m 'work from day 1' $ ... $ git commit -m 'work from day 2' $ ... $ git commit -m 'finish the feature' $ git checkout master $ git merge --no-ff newFeature -m 'add new feature' $ git log // something like below commit 'add new feature' // => commit created at merge with proper message commit 'finish the feature' commit 'work from day 2' commit 'work from day 1' $ gitk // => see details with graph $ git checkout -b anotherFeature // => create a new branch (*) $ ... $ git commit -m 'work from day 3' $ ... $ git commit -m 'work from day 4' $ ... $ git commit -m 'finish another feature' $ git checkout master $ git merge anotherFeature // --ff is by default, message will be ignored $ git log // something like below commit 'work from day 4' commit 'work from day 3' commit 'add new feature' commit 'finish the feature' commit ... $ gitk // => see details with graph |
注意到如果
另一种可能性是,某人可能希望有个人特征分支,而代码只是在一天的末尾。这使得能够在细节上进行跟踪开发。
我不想用不工作的代码来控制污染物的发展,所以我做了----不工作的代码可能只是其中一个在寻找的东西。-----------------------------------------------------
作为一个侧注,可能不需要在一个个人分支上下载工作代码,因为历史可以重写EDOCX1[…]6],并且强迫服务器长时间工作,因为没有人在同一个分支上工作。