获取更改的选项
与远程存储库交互时,这些命令非常有用。 clone
和 fetch
将远程代码从存储库的远程 URL 下载到本地计算机,merge
用于将其他人的工作与你的工作合并在一起,而 pull
是 fetch
和 merge
的组合。
克隆仓库
若要获取其他用户存储库的完整副本,请使用 git clone
,如下所示:
$ git clone https://HOSTNAME/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
将分支返回到拉取之前的位置。