Skip to main content

从远程仓库获取更改

您可以使用常用 Git 命令访问远程仓库。

获取更改的选项

远程存储库交互时,这些命令非常有用。 clonefetch 将远程代码从存储库的远程 URL 下载到本地计算机,merge 用于将其他人的工作与你的工作合并在一起,而 pullfetchmerge 的组合。

克隆仓库

若要获取其他用户存储库的完整副本,请使用 git clone,如下所示:

$ git clone https://HOSTNAME/USERNAME/REPOSITORY.git
# Clones a repository to your computer

克隆存储库时,可以从多个不同的 URL 中进行选择。 登录到 GitHub 后,单击“ 代码”时,这些 URL 会在存储库的主页上提供。

存储库的主页的屏幕截图。 标记有“代码”的绿色按钮以深橙色标出并展开,以显示存储库的 HTTPS URL。

运行 git clone 时,会执行以下操作:

  • 创建名为 repo 的新文件夹
  • 将它初始化为 Git 仓库
  • 创建名为 origin 的远程存储库,指向用于克隆的 URL
  • 将所有的仓库文件和提交下载到那里
  • 默认分支已检出

对于远程存储库中的每个分支 foo,在本地存储库中创建相应的远程跟踪分支 refs/remotes/origin/foo。 通常可将此类远程跟踪分支名称缩写为 origin/foo

从远程仓库获取更改

使用 git fetch 检索其他人完成的新工作。 从存储库中提取会获取所有新的远程跟踪分支和标记,而无需将这些更改合并到自己的分支中。

如果已经有本地存储库包含为所需项目设置的远程 URL,则可以通过在终端使用 git fetch *remotename* 获取所有新信息:

$ git fetch REMOTE-NAME
# Fetches updates made to a remote repository

否则,您可以随时添加新的远程,然后获取。 有关详细信息,请参阅“管理远程仓库”。

合并更改到本地分支

合并可将您的本地更改与其他人所做的更改组合起来。

通常将远程跟踪分支(即从远程仓库获取的分支)与您的本地分支进行合并:

$ git merge REMOTE-NAME/BRANCH-NAME
# Merges updates made online with your local work

从远程仓库拉取更改

git pull 是在同一命令中完成 git fetchgit merge 的便捷方式:

$ git pull REMOTE-NAME BRANCH-NAME
# Grabs online updates and merges them with your local work

由于 pull 会对检索到的更改执行合并,因此应确保在运行 pull 命令之前提交本地工作。 如果遇到无法解决的合并冲突,或者如果你决定退出合并,则可以使用 git merge --abort 将分支返回到拉取之前的位置。

其他阅读材料