当前分支没有跟踪信息
There is no tracking information for the current branch
我使用 github 的时间相对较短,而且我一直使用客户端来执行提交和拉取。我决定从昨天 git bash 开始尝试,我成功地创建了一个新的 repo 并提交了文件。
今天我从另一台计算机对存储库进行了更改,我已经提交了更改,现在我回到家并执行了 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>
这个 repo 的唯一贡献者是我,没有分支(只有 master)。我在 windows 并且我已经从 git bash:
执行了拉取
git状态:
$ git status
# On branch master
nothing to commit, working directory clean
git 分支机构:
$ git branch
* master
我做错了什么?
您可以指定要拉取的分支:
git pull origin master
或者您可以设置它,以便您的本地主分支跟踪 github 主分支作为上游:
git branch --set-upstream-to=origin/master master
git pull
此分支跟踪是在您克隆存储库时自动为您设置的(仅适用于默认分支),但如果您将远程添加到现有存储库,则必须自己设置跟踪。值得庆幸的是,git 给出的建议让您很容易记住该怎么做。
参见:git checkout tag, git pull fails in branch
如果像我一样您需要一直这样做,您可以通过将以下内容添加到您的 .gitconfig
文件来设置一个别名来自动执行此操作:
[alias]
set-upstream = \
!git branch \
--set-upstream-to=origin/`git symbolic-ref --short HEAD`
当您看到消息时 There is no tracking information...
,运行:
git set-upstream
git push
我 运行 经常进入这个确切的消息,因为我通过 git checkout -b <feature-branch-name>
创建本地分支而没有首先创建远程分支。
在完成所有工作并在本地提交后,修复 git push -u
创建了远程分支,推送了我所有的工作,然后是合并请求 URL。
1) git 分支 --set-upstream-to=origin/<master_branch>
feature/<your_current_branch>
2) git拉
我正在尝试上述示例,但无法让它们与我在另一台计算机上创建的(非主)分支同步。作为背景,我在计算机 A (git v 1.8) 上创建了这个存储库,然后将存储库克隆到计算机 B (git 2.14) 上。我在 comp B 上进行了所有更改,但是当我尝试将更改拉到计算机 A 上时,我无法这样做,出现了上述相同的错误。与上述解决方案类似,我必须这样做:
git branch --set-upstream-to=origin/<my_branch_name>
git pull
略有不同,但希望对某人有所帮助
ComputerDruid 的回答很好,但我认为没有必要手动设置上游,除非你愿意。我添加这个答案是因为人们可能认为这是必要的步骤。
如果你像下面这样指定你想要拉的遥控器,这个错误就会消失:
git pull origin master
请注意,origin
是远程名称,master
是分支名称。
1)
如何查看遥控器名称
git remote -v
2) 如何查看存储库中可用的分支。
git branch -r
尝试
git pull --rebase
希望这个回答对最初回答这里有所帮助
使用 Git 2.24,您将不必这样做
git branch --set-upstream-to=origin/master master
git pull
您将能够做到:
git pull --set-upstream-to=origin/master master
在“default remote and branch using -u
option - works with push
but not pull
”查看更多信息。
$ git branch --set-upstream-to=heroku/master master
和
$ git pull
对我有用!
同样的事情发生在我之前,当我创建一个新的 git 分支而不是将它推送到原点时。
尝试先执行这两行:
git checkout -b name_of_new_branch # create the new branch
git push origin name_of_new_branch # push the branch to github
然后:
git pull origin name_of_new_branch
现在应该没事了!
发生这种情况是因为当前分支没有对远程分支的跟踪。所以你可以用两种方式做到这一点。
使用特定分支名称拉取
git pull origin master
或者您可以通过特定的分支跟踪到本地分支。
git branch --set-upstream-to=origin/<branchName>
git branch --set-upstream-to=origin/main
尝试使用
git push --set-upstream origin <branch_name>
否则
使用
git push -u
会告诉你需要做什么。
对于任何想了解为什么会发生这种情况的人,这里有一些相关概念:
- 一个 git 存储库可以有零个或多个“远程”,它们被命名为指向其他存储库的链接,通常在某个中央服务器上。您可以使用“git remote -v”
列出它们
- 如果您从另一台服务器克隆存储库,将为您设置一个名为“origin”的默认远程。
- git 推送和 git 拉取的完整语法是指定远程名称和该远程上的分支。
- 本地分支可以与远程分支相关联,这样您就不必在每次拉取或推送时都输入它。
- 如果您使用“git switch branchname”或“git switch -u origin/branchname”从远程存储库检出分支,将为您设置关联。 (“git switch”在这种情况下与“git checkout”相同)
- 如果你在本地创建一个分支,然后用“git push -u origin”推送它,它会设置关联。
- 但是如果你在最初的pull或push中不包含“-u”,关联将不会被存储,所以你每次都必须具体.
正如其他答案指出的那样,解决方案是设置与“git branch --set-upstream-to=origin/branchname”的关联,其中“origin”是名称远程,“branchname”是分支在远程服务器上的名称。这可能与它在本地的名称相同,但不一定如此。
步骤 1
$ 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-to=<remote>/<branch> master
第 2 步
$ git branch -u origin/master
Branch 'master' set up to track remote branch 'master' from 'origin'.
第 3 步
$ git pull
Already up to date.
我使用 github 的时间相对较短,而且我一直使用客户端来执行提交和拉取。我决定从昨天 git bash 开始尝试,我成功地创建了一个新的 repo 并提交了文件。
今天我从另一台计算机对存储库进行了更改,我已经提交了更改,现在我回到家并执行了 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>
这个 repo 的唯一贡献者是我,没有分支(只有 master)。我在 windows 并且我已经从 git bash:
执行了拉取git状态:
$ git status
# On branch master
nothing to commit, working directory clean
git 分支机构:
$ git branch
* master
我做错了什么?
您可以指定要拉取的分支:
git pull origin master
或者您可以设置它,以便您的本地主分支跟踪 github 主分支作为上游:
git branch --set-upstream-to=origin/master master
git pull
此分支跟踪是在您克隆存储库时自动为您设置的(仅适用于默认分支),但如果您将远程添加到现有存储库,则必须自己设置跟踪。值得庆幸的是,git 给出的建议让您很容易记住该怎么做。
参见:git checkout tag, git pull fails in branch
如果像我一样您需要一直这样做,您可以通过将以下内容添加到您的 .gitconfig
文件来设置一个别名来自动执行此操作:
[alias]
set-upstream = \
!git branch \
--set-upstream-to=origin/`git symbolic-ref --short HEAD`
当您看到消息时 There is no tracking information...
,运行:
git set-upstream
git push
我 运行 经常进入这个确切的消息,因为我通过 git checkout -b <feature-branch-name>
创建本地分支而没有首先创建远程分支。
在完成所有工作并在本地提交后,修复 git push -u
创建了远程分支,推送了我所有的工作,然后是合并请求 URL。
1) git 分支 --set-upstream-to=origin/<master_branch>
feature/<your_current_branch>
2) git拉
我正在尝试上述示例,但无法让它们与我在另一台计算机上创建的(非主)分支同步。作为背景,我在计算机 A (git v 1.8) 上创建了这个存储库,然后将存储库克隆到计算机 B (git 2.14) 上。我在 comp B 上进行了所有更改,但是当我尝试将更改拉到计算机 A 上时,我无法这样做,出现了上述相同的错误。与上述解决方案类似,我必须这样做:
git branch --set-upstream-to=origin/<my_branch_name>
git pull
略有不同,但希望对某人有所帮助
ComputerDruid 的回答很好,但我认为没有必要手动设置上游,除非你愿意。我添加这个答案是因为人们可能认为这是必要的步骤。
如果你像下面这样指定你想要拉的遥控器,这个错误就会消失:
git pull origin master
请注意,origin
是远程名称,master
是分支名称。
1) 如何查看遥控器名称
git remote -v
2) 如何查看存储库中可用的分支。
git branch -r
尝试
git pull --rebase
希望这个回答对最初回答这里有所帮助
使用 Git 2.24,您将不必这样做
git branch --set-upstream-to=origin/master master
git pull
您将能够做到:
git pull --set-upstream-to=origin/master master
在“default remote and branch using -u
option - works with push
but not pull
”查看更多信息。
$ git branch --set-upstream-to=heroku/master master
和
$ git pull
对我有用!
同样的事情发生在我之前,当我创建一个新的 git 分支而不是将它推送到原点时。
尝试先执行这两行:
git checkout -b name_of_new_branch # create the new branch
git push origin name_of_new_branch # push the branch to github
然后:
git pull origin name_of_new_branch
现在应该没事了!
发生这种情况是因为当前分支没有对远程分支的跟踪。所以你可以用两种方式做到这一点。
使用特定分支名称拉取
git pull origin master
或者您可以通过特定的分支跟踪到本地分支。
git branch --set-upstream-to=origin/<branchName>
git branch --set-upstream-to=origin/main
尝试使用
git push --set-upstream origin <branch_name>
否则
使用
git push -u
会告诉你需要做什么。
对于任何想了解为什么会发生这种情况的人,这里有一些相关概念:
- 一个 git 存储库可以有零个或多个“远程”,它们被命名为指向其他存储库的链接,通常在某个中央服务器上。您可以使用“git remote -v” 列出它们
- 如果您从另一台服务器克隆存储库,将为您设置一个名为“origin”的默认远程。
- git 推送和 git 拉取的完整语法是指定远程名称和该远程上的分支。
- 本地分支可以与远程分支相关联,这样您就不必在每次拉取或推送时都输入它。
- 如果您使用“git switch branchname”或“git switch -u origin/branchname”从远程存储库检出分支,将为您设置关联。 (“git switch”在这种情况下与“git checkout”相同)
- 如果你在本地创建一个分支,然后用“git push -u origin”推送它,它会设置关联。
- 但是如果你在最初的pull或push中不包含“-u”,关联将不会被存储,所以你每次都必须具体.
正如其他答案指出的那样,解决方案是设置与“git branch --set-upstream-to=origin/branchname”的关联,其中“origin”是名称远程,“branchname”是分支在远程服务器上的名称。这可能与它在本地的名称相同,但不一定如此。
步骤 1
$ 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-to=<remote>/<branch> master
第 2 步
$ git branch -u origin/master
Branch 'master' set up to track remote branch 'master' from 'origin'.
第 3 步
$ git pull
Already up to date.