ale*_*sko 132 git git-pull git-checkout
我克隆了一个git存储库,然后签出了一个标签:
# git checkout 2.4.33 -b my_branch
Run Code Online (Sandbox Code Playgroud)
这没关系,但是当我尝试git pull
在我的分支中运行时,git会吐出这个错误:
当前分支没有跟踪信息.请指定要合并的分支.有关详细信息,请参阅git-pull(1)
Run Code Online (Sandbox Code Playgroud)git pull <remote> <branch>
如果您希望为此分支设置跟踪信息,可以使用以下命令:
Run Code Online (Sandbox Code Playgroud)git branch --set-upstream new origin/<branch>
我想git pull
只更新主分支并保留当前分支(无论如何它都是标记).这样的事情可能吗?
我需要这个的原因是我有一个自动脚本,总是git拉存储库,当然因为上面的错误而失败..
Vin*_*Wen 114
编辑:对于较新版本的Git,--set-upstream master
已被弃用,您应该使用--set-upstream-to
:
git branch --set-upstream-to=origin/master master
Run Code Online (Sandbox Code Playgroud)
根据提示,您可以运行:
git branch --set-upstream master origin/master
Run Code Online (Sandbox Code Playgroud)
之后,您只需运行git pull
即可更新代码.
小智 90
我有同样的问题,并使用此命令修复它:
$ git push -u origin master
Run Code Online (Sandbox Code Playgroud)
从帮助文件中,-u基本上设置了pulls的默认值:
-u, --set-upstream`
For every branch that is up to date or successfully pushed, add
upstream (tracking) reference, used by argument-less git-pull(1) and
other commands. For more information, see branch.<name>.merge in
git-config(1).
Run Code Online (Sandbox Code Playgroud)
nav*_*ins 48
试试这些命令:
git pull origin master
git push -u origin master
Run Code Online (Sandbox Code Playgroud)
使用切换回主分支
$ git checkout master
Run Code Online (Sandbox Code Playgroud)
然后运行该git pull
操作
$ git pull origin/master
Run Code Online (Sandbox Code Playgroud)
之后,您可以my_branch
再次切换回您的状态.
@alesko:只有git pull
在结账后my_branch
才能更新master
分支.
因为git pull
也会合并到当前分支 - >在你的场景中my_branch
@Simon:那也会推动.这是为什么?
$ git branch -u origin/master
Branch master set up to track remote branch master from origin.
Run Code Online (Sandbox Code Playgroud)
并根据文件:
-u <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.
Run Code Online (Sandbox Code Playgroud)