76

我对 git 很陌生。我主要是将内容签入存储库,但现在我想从另一个开发人员那里获得最新的更改。

我试图简单地执行一个类似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>

所以我做了git pull my_branch_name

它回来了:

fatal: 'develop' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

但在那之前我已经做过git checkout my_branch了。

有人可以让我知道我做错了什么以及如何简单地获取已签入的最新文件吗?

谢谢!

4

5 回答 5

65

我认为您在拉动时错过了遥控器的名称:

git pull <remote> my_branch_name

运行此命令:

git remote -v

并检查您要从中提取的遥控器的名称是什么

编辑:

如果你是 Git 新手,我会向你推荐这本书。它涵盖了从基础到高级的主题,易于理解和阅读

于 2012-08-21T11:53:28.827 回答
47

如第一条错误消息所示,您需要告诉 git 在为该分支拉取时在哪里查看:

在 Git 1.8 及更高版本中,确保您已签出开发并运行:

git branch --set-upstream-to origin/develop

或更短的:-

git branch -u origin/develop

在 1.8 版之前的 Git 中:

git branch --set-upstream develop origin/develop

完成后,您git pull无需指定远程或分支即可。

如果尚未设置远程源,请先运行:

git remote add origin url

于 2012-08-21T11:55:43.400 回答
42

试试这个命令:

git pull origin master
git push -u origin master
于 2013-03-27T07:08:14.480 回答
5

您可以指定要提取的分支:

git pull origin master

或者您可以设置它,以便您的本地主分支跟踪 github 主分支作为上游:

git branch --set-upstream-to=origin/master master
git pull

当您克隆存储库(仅适用于默认分支)时,会自动为您设置此分支跟踪,但如果您将远程添加到现有存储库,则必须自己设置跟踪。值得庆幸的是,git 给出的建议让你很容易记住如何去做。

--set-upstream 显然在 git 1.9.x 中已被弃用。展望未来,你会想要使用类似的东西

git branch -u origin/master

假设您已经签出了 master 。如果没有, git branch -u origin/master master将工作

于 2017-11-23T11:04:43.537 回答
1

我喜欢做的是...

$ git checkout master
$ git pull
$ git checkout <remotebranch>
$ git rebase master
于 2014-03-26T01:17:10.073 回答