我看到了推荐git pull --rebase --ff-only
的命令行参考。我认为git会拒绝,但事实并非如此。
--rebase
与--ff-only
的组合是什么意思?
编辑:我完全知道每个人的所作所为。
答案 0 :(得分:4)
[编辑,2016年12月4日:从Git 2.6版开始,git pull
不再是脚本,因此不再容易看到它的作用,下面的技术细节不再适用。但--ff-only
仍然只在合并时才有用,而不是在变基时。]
git pull
脚本(您可以自己查看,例如,less $(git --exec-path)/pull
)目前将--ff-only
分隔为名为$ff_only
的变量,如果它随后会被忽略做一个变种:
case "$rebase" in
true)
eval="git-rebase $diffstat $strategy_args $merge_args $rebase_args $verbosity"
eval="$eval $gpg_sign_args"
eval="$eval --onto $merge_head ${oldremoteref:-$merge_head}"
;;
*)
eval="git-merge $diffstat $no_commit $verify_signatures $edit $squash $no_ff $ff_only"
eval="$eval $log_arg $strategy_args $merge_args $verbosity $progress"
eval="$eval $gpg_sign_args"
eval="$eval FETCH_HEAD"
;;
esac
eval "exec $eval"
这最终意味着您的--ff-only
选项会被忽略。
将来,git可能会拒绝这些不兼容的内容,因此在使用明确的--ff-only
时,忽略明确--rebase
可能更明智。< / p>
答案 1 :(得分:0)
使用--ff-only
时,系统会忽略--rebase
。