使用GitHub存储库中的更改更新本地存储库


567

我从GitHub本地检查了一个项目,此远程存储库对此进行了更改。用最新更改更新本地副本的正确命令是什么?


26
值得注意的是,github已经为使用git和github编写了一套非常有用的信息。当我第一次转向git时,我发现它们非常宝贵。help.github.com
Mark Embling

Answers:


791

大概:

git pull origin master

28
它抱怨:“您要求从远程'origin'中拉出,但未指定分支。因为这不是当前分支的默认配置远程,因此必须在命令行上指定一个分支。” 因此,我尝试了“ $ git pull origin master”,它运行良好。
Juan Lanus 2014年

8
git pull origin master
Andrzej Rehmann 2014年

1
我删除了一些文件,它不会再带来它们,您知道吗?
水瓶座力量

1
我们在运行此命令之前执行git commit?每当我运行此命令时,我最终都会得到18347213846修改过的文件,而我什至没有碰过它!!!
Orkun Ozen

5
我刚刚学到了很难的方法,即拉出一个新的远程存储库分支不会在本地创建该名称的分支,而是将该远程分支拉入碰巧要检出的任何本地分支。我不知道如何撤消缺少沟渠并重新克隆存储库。在任何情况下,本地分支似乎都独立于远程分支,在拉动之前,应始终确保您位于目标本地分支中。
乔·拉普


62
git fetch [remotename]

但是,您需要将所有更改合并到本地分支中。如果您正在跟踪Github上的远程分支的分支,则

git pull

首先进行抓取,然后在跟踪的分支中合并


5
如果您使用的是git fetch方法,则还需要使用来获取标签git fetch -t。如果您对更改(git log HEAD..FETCH_HEAD)感到满意,则可以将它们与合并git merge FETCH_HEAD
布拉德·格里索姆

16

这个问题非常笼统,我将作一些假设来简化它。我们假设您要更新master分支。

如果您尚未在本地进行任何更改,则可以使用git pull取消所有新提交并将其添加到中master

git pull origin master

如果进行了更改,并且想要避免添加新的合并提交,请使用git pull --rebase

git pull --rebase origin master

git pull --rebase 即使您没有进行任何更改也可能会起作用,这可能是您最好的选择。


1
重新设定基准,以及重新设定基准的危险: atlassian.com/git/tutorials/rewriting-history/git-rebase。“了解变基的危险”的第2段和第3段确实让我错过了SVN的命令集。
WillC '18 -10-24

9

对于已经设置的原始主机,只需使用以下命令-

git pull "https://github.com/yourUserName/yourRepo.git"
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.