为什么 -f 在 git 命令 git merge --no-ff <branch-name> 中被调用两次?
Why is -f being called twice in the git command git merge --no-ff <branch-name>?
在查找 git 参数的语法时涉及一个破折号与两个破折号。我遇到了这个 post 这解释了 single dashes allow you to specify multiple single letter parameters with one dash and double dashes are for multi-letter parameters.
所以在 git merge --no-ff <branch-name>
的情况下 -ff
调用了 -f
两次?如果是,为什么?
So in the case of git merge --no-ff <branch-name>
is -ff
calling -f
twice?
不,不是。
--no-ff
是完整的长选项。长选项可能包含破折号,因为只有空格分隔命令行参数,而长选项始终是整个命令行参数(不像短选项,其中一个命令行参数可以包含多个选项,即 -bar
包含 b
a
和 r
).
--ff
就意味着 fast forward
.
从语义上讲:
a fast-forward merge 当前 feature
分支中的分支 other
是一个简单的合并,其中feature
的 SHA1 只是“撞”到 other
(这并不总是可能的,只有当 other
是 feature
的 child-commit-or-so 时)
a non-fast-forward merge of other
in feature
是“真正的合并”,结果是在分支 feature
中创建一个新的合并提交,然后它有两个父提交。
参考
另请参阅在线 refman,其中指示存在三个相关的 CLI 标志:
https://git-scm.com/docs/git-merge#Documentation/git-merge.txt---ff
--ff
--no-ff
--ff-only
Specifies how a merge is handled when the merged-in history is already a descendant of the current history.
在查找 git 参数的语法时涉及一个破折号与两个破折号。我遇到了这个 post 这解释了 single dashes allow you to specify multiple single letter parameters with one dash and double dashes are for multi-letter parameters.
所以在 git merge --no-ff <branch-name>
的情况下 -ff
调用了 -f
两次?如果是,为什么?
So in the case of
git merge --no-ff <branch-name>
is-ff
calling-f
twice?
不,不是。
--no-ff
是完整的长选项。长选项可能包含破折号,因为只有空格分隔命令行参数,而长选项始终是整个命令行参数(不像短选项,其中一个命令行参数可以包含多个选项,即 -bar
包含 b
a
和 r
).
--ff
就意味着 fast forward
.
从语义上讲:
a fast-forward merge 当前
feature
分支中的分支other
是一个简单的合并,其中feature
的 SHA1 只是“撞”到other
(这并不总是可能的,只有当other
是feature
的 child-commit-or-so 时)a non-fast-forward merge of
other
infeature
是“真正的合并”,结果是在分支feature
中创建一个新的合并提交,然后它有两个父提交。
参考
另请参阅在线 refman,其中指示存在三个相关的 CLI 标志:
https://git-scm.com/docs/git-merge#Documentation/git-merge.txt---ff
--ff
--no-ff
--ff-only
Specifies how a merge is handled when the merged-in history is already a descendant of the current history.