获取更改的选项
这些命令在与远程仓库交互时非常有用。clone
和 fetch
将远程代码从仓库的远程 URL 下载到您的本地计算机,merge
用于将不同人员的工作与您的工作合并,而 pull
是 fetch
和 merge
的组合。
克隆仓库
要获取其他用户的完整仓库副本,请使用以下命令:
$ 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
将分支恢复到拉取之前的状态。