除了上面描述了如何为本地副本中的现有分支设置远程存储库的响应之外,我认为值得对此进行扩展,并指出 虽然无法设置默认分支git pull,可以使用checkout.defaultRemote 设置在您的存储库中为git checkout 设置默认远程。
在下面的示例中,我将使用远程名称origin 而不是您的特定远程名称black,因为对于大多数人来说,origin 远程是您想要这样设置的远程名称。不过,出于您的目的,只需将下面示例中的任何原点实例替换为黑色即可。
首先,您需要在控制台中输入以下内容:
git config checkout.defaultRemote origin
此命令将以下部分添加到存储库的 .git/config 文件中:
[checkout]
defaultRemote = origin
这个命令的结果是,每次你想从“origin”设置一个远程分支的新本地副本时,你只需要输入:
git checkout some-branch
而且 git 会假设你的意思是:
git checkout --track origin/some-branch
这是从上面提到的解决方案中使用git checkout -b some-branch 设置本地副本的另一种方法,当您知道分支已经存在于一个或多个遥控器上时会更有用。
跟踪分支意味着当您随后需要执行git pull 时,它知道要从哪个远程拉取。如果本地分支尚未设置为跟踪远程,或者它已设置但仍想从第二个远程提取代码,那么您将始终需要手动指定要从哪个远程提取git pull <remote-name>.
注意:
要使git config checkout.defaultRemote origin 对git pull 命令场景有任何真正的好处,当您第一次开始处理具有多个遥控器的项目时,或者在您开始添加其他命令时,需要设置此命令/配置遥控器。原因是因为这个配置只会影响你在设置了这个配置之后要签出的分支;它对现有分支没有任何影响。在这种情况下,所有尚未从特定远程跟踪的现有本地分支都需要单独修改以添加预期的远程,然后简单的git pull 才能工作。
如果您发现自己在各种项目中经常遇到此问题,则更全面的设置是创建一个规则,即应始终将默认遥控器添加为所有项目中的“原始”遥控器,然后在全局范围内设置此配置:
git config --global checkout.defaultRemote origin