【问题标题】:How to set default remote in git?如何在 git 中设置默认远程?
【发布时间】:2019-07-29 10:42:27
【问题描述】:

我的 git 存储库中有多个遥控器。如果我执行git pull,它会询问我的一位同事的密码。

如何将遥控器改为black

【问题讨论】:

  • git pull {originName}?你也可以移动一些东西,这样origin就是你的了。
  • @DanielA.White,我想简单地打电话给git pull 而不是git pull black
  • origin 是远程的名称(repo 被克隆的地方)。没有办法拥有多个origin
  • @axiac,我明白了。我相应地更改了问题标题。
  • 试试git config branch.<name>.remote blackname 是你现在所在的分支。

标签: git branch git-pull


【解决方案1】:

没有默认远程,每个分支都可以从远程仓库跟踪特定分支。

如果您使用git checkout -b <branch-name> 创建了分支,其中<branch-name> 是远程分支的名称,那么新分支会跟踪该分支(从任何远程主机)。

如果您在本地创建分支然后使用git push --set-upstream <remote-name> <branch-name>,则本地分支<branch-name> 跟踪远程分支<remote-name>/<branch-name>

您始终可以使用git branch --set-upstream-to 更改当前分支跟踪的远程分支,或使用git branch --unset-upstream 告诉它不要跟踪任何远程分支。

【讨论】:

    【解决方案2】:

    除了上面描述了如何为本地副本中的现有分支设置远程存储库的响应之外,我认为值得对此进行扩展,并指出 虽然无法设置默认分支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 origingit pull 命令场景有任何真正的好处,当您第一次开始处理具有多个遥控器的项目时,或者在您开始添加其他命令时,需要设置此命令/配置遥控器。原因是因为这个配置只会影响你设置了这个配置之后要签出的分支;它对现有分支没有任何影响。在这种情况下,所有尚未从特定远程跟踪的现有本地分支都需要单独修改以添加预期的远程,然后简单的git pull 才能工作。

    如果您发现自己在各种项目中经常遇到此问题,则更全面的设置是创建一个规则,即应始终将默认遥控器添加为所有项目中的“原始”遥控器,然后在全局范围内设置此配置:

    git config --global checkout.defaultRemote origin
    

    【讨论】:

    • 为什么需要立即设置配置?如果稍后再设置会怎样?
    • 只有这样做git checkout some-branch 不一定要使用远程设置它,这意味着您的 git 进程稍后会有更多命令。
    【解决方案3】:

    要自动化这个分支的过程:

    git config branch.<your-branch>.remote black
    

    【讨论】:

      猜你喜欢
      • 2014-10-19
      • 2013-05-26
      • 2016-09-05
      • 2017-01-04
      • 1970-01-01
      • 2023-04-11
      • 2011-06-18
      • 1970-01-01
      • 2011-04-05
      相关资源
      最近更新 更多