2017-07-18 61 views
0

我感到困惑git的差异:分行

git fetch origin master VS git fetch origin master:master

我知道首先会从存储库和指定的分支中获取。

第二个git fetch origin master:master呢?

回答

4

您在这些示例中变化的参数称为refspec

在第一个示例中,您使用的是指定要读取的源参考的简写(master),但未指定要更新的目标参考。默认行为将适用,其中典型设置意味着origin/master将被更新。

第二个示例中,您提供一个源(master),然后是一个:将目标与目标(也是master)分开。这将尝试直接更新本地回购的本地master分支 - 而不是origin/master远程分支ref。它可能会失败(例如,如果本地回购是默认配置中的非回购回购,并且已检出master)。

如果你想使用显式的Refspec但你还是要更新的远程裁判,你可以说

git fetch origin master:origin/master