【问题标题】:What does git pull --rebase --ff-only do?git pull --rebase --ff-only 有什么作用?
【发布时间】:2015-10-11 11:57:50
【问题描述】:

我看到了推荐git pull --rebase --ff-only 的命令行参考。我以为 git 会拒绝,但事实并非如此。

--rebase--ff-only 的组合是什么意思?

编辑:我完全知道每个人都在做什么。

【问题讨论】:

标签: git git-merge git-rebase git-pull


【解决方案1】:

[编辑,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 可能会因为不兼容而拒绝这些,因此在使用显式 --rebase 时省略显式 --ff-only 可能更明智。

【讨论】:

    【解决方案2】:

    似乎--ff-only 在使用--rebase 时会被忽略。

    【讨论】:

      猜你喜欢
      • 2014-10-15
      • 2020-10-20
      • 2016-10-27
      • 2015-03-21
      • 2016-05-19
      • 2011-09-11
      • 2011-03-22
      • 2017-06-30
      相关资源
      最近更新 更多