我经常使用克隆的存储库,有一个“原始”(我)和“上游”(原始来源)。我总是从github上克隆“原始”存储库以进行处理并创建PR,并且有时需要从“上游”中提取信息以与正在进行的最新更改保持同步。
git clone <origin uri>
之后,我可以做
git push/pull
自分支已被跟踪以来未指定其分支;但是在另一台遥控器上
git pull upstream
例如在master
分支上,我希望git实际完成
git pull upstream master
代替:
You asked to pull from the remote 'upstream', but did not specify
a branch. Because this is not the default configured remote
for your current branch, you must specify a branch on the command line.
我知道我可以配置跟踪遥控器,但是我想知道只要分支名称相同,它是否可以自动进行。
答案 0 :(得分:0)
您要求从远程“上游”拉出,但未指定 科。因为这不是您的默认配置遥控器 当前分支,您必须在命令行上指定一个分支。
看看消息,第一件事是您尚未将upstream
配置为默认遥控器。因此,首先,您需要将其设置为默认遥控器,例如:
git config branch.branch_name.remote upstream
现在,您需要指定一个要从中提取提交的分支。您可以通过运行
来指定
git config branch.branch_name.merge refs/heads/branch_name
希望有帮助。
答案 1 :(得分:0)
只需使用--track
或--set-upstream-to(-u)
:
$ git branch --track master upstream/master
对于当前分支:
$ git branch -u upstream/master
$ git branch --set-upstream-to=upstream/master
这会将远程跟踪分支upstream/master
分配给您的master
分支,以便在下一个git pull
调用中自动获取它。
在手册页中:
-t, --track
When creating a new branch, set up branch.<name>.remote and branch.<name>.merge
configuration entries to mark the start-point branch as "upstream" from the new
branch. This configuration will tell git to show the relationship between the
two branches in git status and git branch -v. Furthermore, it directs git pull
without arguments to pull from the upstream when the new branch is checked out.
-u <upstream>, --set-upstream-to=<upstream>
Set up <branchname>'s tracking information so <upstream> is considered
<branchname>'s upstream branch. If no <branchname> is specified, then it defaults
to the current branch.
答案 2 :(得分:0)
您可以使用以下配置,因此无论何时从远程签出新分支,都将自动对其进行跟踪,而无需使用--set-upstream-to
或--track
git config --global branch.autosetupmerge true