获取更改的选项
这些命令在与 远程仓库 交互时非常有用。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 可在仓库主页上点击 Code 时获取。

当您运行 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 将分支恢复到拉取之前的状态。