使用特性分支时,是选择快进合并还是非快进合并?

5

我使用git已经有很长一段时间了。但是我从未以协作的方式使用过它。我目前正在设置一个新项目并计划了很多事情,其中包括:如何使用git?

好的,我已经开始阅读一些资料,并做了一个简单的决定:好吧,我们将使用特性分支工作流程。这太棒了。

下一个问题:合并还是PR?合并!好的。

最后一个问题:FF还是非FF?
在特性分支工作流程中合并FF是否有意义?当合并FF时,整个特性分支的故事就感觉像浪费掉了。
使用非FF是否存在我没有考虑到的任何缺点?


当阅读“扁平化”的(如 git log --oneline)git日志时,我认为那些合并提交并不重要。但是当使用一些更高级的 git log --format ... 时,如果日志看起来像这样,它可能会非常有用。至少在我看来是这样。

*   e3f667e (HEAD, origin/master, master) Merge branch 'issue#1702'
|\
| * ec359fe (origin/issue#1702, issue#1702) 1702: two
| * 45a63b3 1702: two
* |   97bbec7 Merge branch 'issue#1701'
|\ \
| |/
|/|
| * f959cc9 (origin/issue#1701, issue#1701) 1701: two
| * 9217d3c 1701: one
|/
*   6c934ea Merge branch 'issue#1606'
|\
| * 365eac5 (origin/issue#1606, issue#1606) 1606: two
| * 95df1c9 1606: two
| * ad79b01 1606: one
|/
*   02dbcea Merge pull request #1 from babbelnedd/issue#1605
|\
| * d24d200 (origin/issue#1605, issue#1605) 1605: two
| * 7ef0a8e 1605: two
| * 5aac64d 1605: one
|/
* 585d8b9 Initial commit
2个回答

8
您说得没错,如果同时使用特性分支和进行快进合并是没有意义的。
“Gitflow方式”是在合并主题分支时使用快进合并:

--no-ff标志始终会创建一个新的提交对象,即使可以通过快进方式执行合并。这样可以避免丢失有关特性分支历史存在的信息,并将所有一起添加特性的提交组合在一起。

来源

-1

看起来Gitflow的主要使用者打算使用快进合并。

Jeff Kreeftmeijer's blog关于Git-Flow工具的引用。请注意“快进”信息。

正如输出已经解释的那样,您现在处于一个新分支上,可以像平常一样使用git,在完成功能时使用feature finish:

$ git flow feature finish authentication
Switched to branch 'develop'
Updating 9060376..00bafe4
Fast-forward
 authentication.txt | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 authentication.txt
Deleted branch feature/authentication (was 00bafe4).

Summary of actions:
- The feature branch 'feature/authentication' was merged into 'develop'
- Feature branch 'feature/authentication' has been removed
- You are now on branch 'develop'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接