git pull--rebase--ff只做什么?
我看到一个命令行参考,它建议使用git pull--rebase--ff只做什么?,git,git-merge,git-rebase,git-pull,Git,Git Merge,Git Rebase,Git Pull,我看到一个命令行参考,它建议使用git pull--rebase--ff only。我以为git会拒绝,但事实并非如此 --rebase与--ff only的组合是什么意思 编辑:我完全知道每一个单独做什么。[编辑,2016年12月4日:从Git版本2.6开始,Git pull不再是一个脚本,因此不再容易看到它的作用,下面的技术细节不再适用。但是--ff only仍然只在合并时有用,而不是在重定基时。] git pull脚本(您可以自己查看它,例如,less$(git--exec path)/p
git pull--rebase--ff only
。我以为git会拒绝,但事实并非如此
--rebase
与--ff only
的组合是什么意思
编辑:我完全知道每一个单独做什么。[编辑,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
,似乎--ff-only
在使用--rebase
时会被忽略 可能是重复的不,那不是重复的。它是--rebase
和--ff only
传递给git pull
的组合。可能建议应该是rebase或--ff,因为默认行为会自动进行合并提交。