git - 新用户试图拉动并获得一些令人困惑的消息

Gee*_*Out 67 git

我对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>
Run Code Online (Sandbox Code Playgroud)

所以我做到了 git pull my_branch_name

它回来了:

fatal: 'develop' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)

git checkout my_branch在那之前我做得很好.

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

谢谢!

dav*_*ids 57

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

git pull <remote> my_branch_name
Run Code Online (Sandbox Code Playgroud)

运行此命令:

git remote -v
Run Code Online (Sandbox Code Playgroud)

并检查要从中拉出的遥控器的名称

编辑:

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


bcm*_*cfc 44

正如第一条错误消息所示,你需要告诉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

  • URL在远程配置中设置,而不是在分支的上游配置中设置. (2认同)
  • Git status 已经说 Im on master,这是正确的分支。在 git branch --set-upstream master origin/branch 我不知道“master”和“origin”格式应该是什么。它们应该是名称、网址、IP 地址还是字面意思的“master”和“origin”。我已经阅读了大量的文档,但这个关键部分仍然没有。 (2认同)
  • @harschware感谢你提出来,已经更新了答案以支持Git中的变化. (2认同)

nav*_*ins 36

试试这个命令:

git pull origin master
git push -u origin master
Run Code Online (Sandbox Code Playgroud)

  • 第一个cmd拉远程到本地主分支,第二个推送到远程.`-u`表示添加上游(跟踪)引用,解决问题. (3认同)

Aka*_*pal 6

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

git pull origin master
Run Code Online (Sandbox Code Playgroud)

或者你可以设置它,以便你的本地 master 分支将 github master 分支作为上游进行跟踪:

git branch --set-upstream-to=origin/master master
git pull
Run Code Online (Sandbox Code Playgroud)

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

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

git branch -u origin/master
Run Code Online (Sandbox Code Playgroud)

假设你已经检查过 master 了。如果没有, git branch -u origin/master master会工作