val*_*999 497 git github git-pull
我一直在相对较短的时间内使用github,而且我总是使用客户端来执行提交和拉取.我决定昨天从git bash尝试它,我成功创建了一个新的repo和commit文件.
今天我从另一台计算机上对存储库进行了更改,我已经提交了更改,现在我回到家并执行了git pull更新我的本地版本,我得到了这个:
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream develop origin/<branch>
Run Code Online (Sandbox Code Playgroud)
这个回购的唯一贡献者是我,并且没有分支(只是一个主人).我在Windows上,我从git bash执行了拉动:
git状态:
$ git status
# On branch master
nothing to commit, working directory clean
Run Code Online (Sandbox Code Playgroud)
git branch:
$ git branch
* master
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
Com*_*uid 826
您可以指定要拉出的分支:
git pull origin master
Run Code Online (Sandbox Code Playgroud)
或者你可以设置它,以便你的本地主分支跟踪github主分支作为上游:
git branch --set-upstream-to=origin/master master
git pull
Run Code Online (Sandbox Code Playgroud)
克隆存储库时会自动为您设置此分支跟踪(仅适用于默认分支),但如果将远程数据库添加到现有存储库,则必须自行设置跟踪.值得庆幸的是,git给出的建议很容易记住该怎么做.
rjm*_*nro 36
请参阅:git checkout标记,git pull在分支中失败
如果像我这样你需要一直这样做,你可以设置一个别名,通过在.gitconfig文件中添加以下内容来自动完成:
[alias]
set-upstream = \
!git branch \
--set-upstream-to=origin/`git symbolic-ref --short HEAD`
Run Code Online (Sandbox Code Playgroud)
当您看到消息There is no tracking information...,只需运行.gitconfig,然后There is no tracking information...再次.
感谢https://zarino.co.uk/post/git-set-upstream/
Coc*_*nut 35
$ git pull
Run Code Online (Sandbox Code Playgroud)
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=<remote>/<branch> master
Run Code Online (Sandbox Code Playgroud)
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=<remote>/<branch> master
Run Code Online (Sandbox Code Playgroud)
Branch 'master' set up to track remote branch 'master' from 'origin'.
Run Code Online (Sandbox Code Playgroud)
$ git branch -u origin/master
Run Code Online (Sandbox Code Playgroud)
Already up to date.
Run Code Online (Sandbox Code Playgroud)
IMS*_*SoP 27
对于任何想要理解为什么会发生这种情况的人来说,有一些相关的概念:
git push -u origin,它将设置关联。-u,则不会存储关联,因此您每次都必须具体。正如其他答案所指出的,解决方案是设置与 的关联git branch --set-upstream-to=origin/branchname,其中origin是远程的名称,“branchname”是分支在远程服务器上的名称。这可能与它在本地的名称相同,但不一定如此。
Von*_*onC 26
使用 Git 2.24(2019 年第 4 季度),您不必这样做
git branch --set-upstream-to=origin/main main
git pull
Run Code Online (Sandbox Code Playgroud)
您将能够执行以下操作:
git pull --set-upstream-to=origin/main main
Run Code Online (Sandbox Code Playgroud)
更多信息请参阅“默认远程和分支使用-u选项 - 适用于push但不适用pull”。
请注意,使用 Git 2.37(2022 年第 3 季度),您有一个新选项push.autoSetupRemote
git config --global push.autoSetupRemote true
Run Code Online (Sandbox Code Playgroud)
那么一个简单的操作git push将与 相同git push --set-upstream-to=origin/main main,使下一个git pull 已经设置为从 检索提交origin/main。
小智 14
发生这种情况是因为当前分支没有跟踪远程分支。所以你可以用两种方法来做到这一点。
使用特定分支名称拉取
git pull origin master
或者您可以通过特定分支来跟踪到本地分支。
git branch --set-upstream-to=origin/<branchName>
Aer*_*rin 12
ComputerDruid的答案很棒,但我认为除非您愿意,否则必须手动设置上游.我正在添加这个答案,因为人们可能认为这是必要的一步.
如果您指定要拉出的遥控器,则此错误将消失,如下所示:
git pull origin master
Run Code Online (Sandbox Code Playgroud)
请注意,这origin是远程的名称,master是分支名称.
1)如何检查遥控器的名称
git remote -v
Run Code Online (Sandbox Code Playgroud)
2)如何查看存储库中可用的分支.
git branch -r
Run Code Online (Sandbox Code Playgroud)
小智 9
谁希望将他们的存储库链接到他们的项目并提交更改
步骤1
git pull
Run Code Online (Sandbox Code Playgroud)
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=<remote>/<branch> master
Run Code Online (Sandbox Code Playgroud)
第2步
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=<remote>/<branch> master
Run Code Online (Sandbox Code Playgroud)
Branch 'master' set up to track remote branch 'master' from 'origin'.
Run Code Online (Sandbox Code Playgroud)
步骤3
git branch -u origin/master
Run Code Online (Sandbox Code Playgroud)
Already up to date.
Run Code Online (Sandbox Code Playgroud)
我花了几个小时提交更改,然后按照上面的步骤操作,
git add . git commit .
然后执行了下面的步骤,我的推送成功了
执行
Branch 'master' set up to track remote branch 'master' from 'origin'.
Run Code Online (Sandbox Code Playgroud)
我经常遇到这个确切的消息,因为我创建了一个本地分支,git checkout -b <feature-branch-name>而没有先创建远程分支.
完成所有工作并在本地提交后,修复程序git push -u创建了远程分支,推送了所有工作,然后是合并请求URL.
我正在尝试上述示例,但无法让它们与我在另一台计算机上创建的(非主)分支同步。作为背景,我在计算机 A (git v 1.8) 上创建了这个存储库,然后将存储库克隆到计算机 B (git 2.14) 上。我在 comp B 上进行了所有更改,但是当我尝试将更改拉到计算机 AI 上时无法这样做,出现上述相同的错误。与上述解决方案类似,我必须这样做:
git branch --set-upstream-to=origin/<my_repository_name>
git pull
Run Code Online (Sandbox Code Playgroud)
略有不同,但希望对某人有所帮助
尝试
git pull --rebase
Run Code Online (Sandbox Code Playgroud)
希望这个答案有助于最初在这里回答/sf/answers/3851075931/
小智 6
尝试使用
git push --set-upstream origin <branch_name>
Run Code Online (Sandbox Code Playgroud)
否则
使用
git push -u
Run Code Online (Sandbox Code Playgroud)
会告诉您需要做什么。
| 归档时间: |
|
| 查看次数: |
345236 次 |
| 最近记录: |