获取更改的选项
与远程存储库交互时,这些命令非常有用。
clone 和 fetch 将远程代码从存储库的远程 URL 下载到本地计算机,merge 用于将其他人的工作与你的工作合并在一起,而 pull 是 fetch 和 merge 的组合。
克隆仓库
若要获取其他用户存储库的完整副本,请使用 git clone,如下所示:
$ git clone https://github.com/USERNAME/REPOSITORY.git
# Clones a repository to your computer
克隆存储库时,可以从多个不同的 URL 中进行选择。 登录到 GitHub 后,单击 代码时,这些 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 fetch` 和 `git merge` 的便捷方式:
$ git pull REMOTE-NAME BRANCH-NAME
# Grabs online updates and merges them with your local work
由于 pull 会对检索到的更改执行合并,因此应确保您在运行 pull 命令之前将本地更改提交。 如果遇到无法解决的合并冲突,或者如果你决定退出合并,则可以使用 git merge --abort 将分支返回到拉取之前的位置。
其他阅读材料
-
[《Pro Git》一书中的“使用远程”](https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes) -
[AUTOTITLE](/get-started/using-github/troubleshooting-connectivity-problems)