{"meta":{"title":"从远程仓库获取更改","intro":"您可以使用常用 Git 命令访问远程仓库。","product":"开始","breadcrumbs":[{"href":"/zh/get-started","title":"开始"},{"href":"/zh/get-started/using-git","title":"使用 Git"},{"href":"/zh/get-started/using-git/getting-changes-from-a-remote-repository","title":"从远程获取更改"}],"documentType":"article"},"body":"# 从远程仓库获取更改\n\n您可以使用常用 Git 命令访问远程仓库。\n\n## 获取更改的选项\n\n与[远程存储库](/zh/get-started/git-basics/about-remote-repositories)交互时，这些命令非常有用。\n`clone` 和 `fetch` 将远程代码从存储库的远程 URL 下载到本地计算机，`merge` 用于将其他人的工作与你的工作合并在一起，而 `pull` 是 `fetch` 和 `merge` 的组合。\n\n## 克隆仓库\n\n若要获取其他用户存储库的完整副本，请使用 `git clone`，如下所示：\n\n```shell\n$ git clone https://github.com/USERNAME/REPOSITORY.git\n# Clones a repository to your computer\n```\n\n克隆存储库时，可以从[多个不同的 URL](/zh/get-started/git-basics/about-remote-repositories) 中进行选择。 登录到 GitHub 后，单击 **<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-code\" aria-label=\"code\" role=\"img\"><path d=\"m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z\"></path></svg>代码**时，这些 URL 会在仓库的主页上显示。\n\n![存储库的主页的屏幕截图。 绿色“Code”按钮以橙色标出并展开，显示存储库的 HTTPS URL。](/assets/images/help/repository/remotes-url-global-nav-update.png)\n\n运行 `git clone` 时，会执行以下操作：\n\n* 创建名为 `repo` 的新文件夹\n* 将它初始化为 Git 仓库\n* 创建一个名为 `origin` 的远程，指向您克隆自的 URL\n* 仓库的所有文件和提交记录都下载到指定的位置\n* 默认分支已检出\n\n对于远程存储库中的每个分支 `foo`，在本地存储库中创建相应的远程跟踪分支 `refs/remotes/origin/foo`。 通常可将此类远程跟踪分支名称缩写为 `origin/foo`。\n\n## 从远程仓库获取更改\n\n使用 `git fetch` 检索其他人完成的新工作。 从存储库中提取会获取所有新的远程跟踪分支和标记，而\\_无需\\_将这些更改合并到自己的分支中。\n\n如果已经有本地存储库包含为所需项目设置的远程 URL，则可以通过在终端使用 `git fetch *remotename*` 获取所有新信息：\n\n```shell\n$ git fetch REMOTE-NAME\n# Fetches updates made to a remote repository\n```\n\n否则，您可以随时添加新的远程，然后获取。 有关详细信息，请参阅“[管理远程仓库](/zh/get-started/git-basics/managing-remote-repositories)”。\n\n## 合并更改至本地分支\n\n合并可将您的本地更改与其他人所做的更改组合起来。\n\n通常将远程跟踪分支（即从远程仓库获取的分支）与您的本地分支进行合并：\n\n```shell\n$ git merge REMOTE-NAME/BRANCH-NAME\n# Merges updates made online with your local work\n```\n\n## 从远程仓库拉取更改\n\n```\n          `git pull` 是在同一命令中完成 `git fetch` 和 `git merge` 的便捷方式：\n```\n\n```shell\n$ git pull REMOTE-NAME BRANCH-NAME\n# Grabs online updates and merges them with your local work\n```\n\n由于 `pull` 会对检索到的更改执行合并，因此应确保您在运行 `pull` 命令之前将本地更改提交。 如果遇到无法解决的[合并冲突](/zh/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line)，或者如果你决定退出合并，则可以使用 `git merge --abort` 将分支返回到拉取之前的位置。\n\n## 其他阅读材料\n\n* [《Pro Git》一书中的“使用远程”](https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes)\n* [连接问题故障排除](/zh/get-started/using-github/troubleshooting-connectivity-problems)"}