我看到一個命令行參考,推薦使用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,因爲默認行爲會自動提交合並。 –