我看到一个命令行参考,推荐使用git pull --rebase --ff-only
。我认为git会拒绝这一点,但事实并非如此。git pull --rebase --ff-only会做什么?
--rebase
与--ff-only
的组合是什么意思?
编辑:我完全知道每个人都做了什么。
我看到一个命令行参考,推荐使用git pull --rebase --ff-only
。我认为git会拒绝这一点,但事实并非如此。git pull --rebase --ff-only会做什么?
--rebase
与--ff-only
的组合是什么意思?
编辑:我完全知道每个人都做了什么。
[编辑,2016年12月4日:自Git版本2.6起,git pull
不再是脚本,因此不再容易看到它的作用,下面的技术细节不再适用。但是--ff-only
合并时,不重订的时候还是唯一有用的。]
的git pull
脚本(你可以自己查看,比如,less $(git --exec-path)/pull
)目前分离出来--ff-only
到名为$ff_only
变量,它随后被完全忽略,如果它卷起做一个rebase:
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可能会拒绝这些不兼容的东西,所以当使用明确的--rebase
时,可能会明智地省略明确的--ff-only
。
似乎--ff-only
在使用--rebase
时将被忽略。
[git pull --rebase和git pull之间的区别-ff-only]可能的副本(http://stackoverflow.com/questions/25430600/difference-between-git-pull-rebase-and-git-只是拉 - ff) – Avalanche
不,这不是重复的。这是'--rebase'和'--ff-only'的组合,传递给'git pull'。 – sschuberth
也许建议应该是rebase或--ff-only,因为默认行为会自动提交合并。 –