获取更改的选项
这些命令在与远程仓库交互时非常有用。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
将分支恢复到拉取之前的状态。