[英]How to set default remote in git?
我的 git 存储库中有多个遥控器。 如果我执行git pull
,那么它会询问我的一位同事的密码。
如何将遥控器更改为black
?
没有默认远程,每个分支都可以跟踪远程仓库中的特定分支。
如果您使用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
告诉它不跟踪任何远程分支。
除了上面描述如何为本地副本中的现有分支设置远程存储库的响应之外,我认为值得对此进行扩展,注意到虽然无法为git pull
设置默认分支,但默认远程可以使用checkout.defaultRemote
设置在您的存储库中为git checkout
checkout.defaultRemote
设置。 但是为了让这真正有好处,当您第一次开始处理具有多个遥控器的项目时,或者在您开始添加其他遥控器时,需要设置配置。
在我下面的示例中,我将使用远程名称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 --global checkout.defaultRemote origin
要自动化此分支的流程:
git config branch.<your-branch>.remote black
## For origin
git config --local checkout.defaultRemote origin
## For main
git config --local checkout.defaultRemote main
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.