Getting changes from a remote repository
You can use common Git commands to access remote repositories.
本文内容
- 克隆仓库
- Fetching changes from a remote repository
- Merging changes into your local branch
- Pulling changes from a remote repository
与远程仓库交互时,这些命令非常有用。 clone
and fetch
download remote code from a repository's remote URL to your local computer, merge
is used to merge different people's work together with yours, and pull
is a combination of fetch
and merge
.
克隆仓库
To grab a complete copy of another user's repository, use git clone
like this:
$ git clone https://主机名/USERNAME/REPOSITORY.git
# 将仓库克隆到您的计算机
克隆仓库时,有几个不同的 URL可供选择。 登录到 GitHub 后,可在仓库详细信息下面找到这些 URL:
运行 git clone
时,将发生以下操作:
- 创建名为
repo
的文件夹 - 将它初始化为 Git 仓库
- 创建名为
origin
的远程仓库,指向用于克隆的 URL - 将所有的仓库文件和提交下载到那里
- 检出默认分支(通常称为
master
)
对于远程仓库中的每个 foo
分支,在本地仓库中创建相应的远程跟踪分支 refs/remotes/origin/foo
。 通常可以将此类远程跟踪分支名称缩写为 origin/foo
。
Fetching changes from a remote repository
使用 git fetch
可检索其他人完成的新工作。 Fetching from a repository grabs all the new remote-tracking branches and tags without merging those changes into your own branches.
If you already have a local repository with a remote URL set up for the desired project, you can grab all the new information by using git fetch *remotename*
in the terminal:
$ git fetch remotename
# 获取远程仓库的更新
否则,您始终可以添加新的远程仓库然后获取它。
Merging changes into your local branch
合并可将您的本地更改与其他人所做的更改组合起来。
Typically, you'd merge a remote-tracking branch (i.e., a branch fetched from a remote repository) with your local branch:
$ git merge remotename/branchname
# 将在线更新与您的本地工作进行合并
Pulling changes from a remote repository
git pull
是在同一个命令中完成 git fetch
和 git merge
的便捷方式。
$ git pull remotename branchname
# 获取在线更新并将其与您的本地工作进行合并
由于 pull
会对检索到的更改执行合并,因此应确保在运行 pull
命令之前提交您的本地工作。 如果您遇到无法解决的合并冲突,或者您决定退出合并,可使用 git merge --abort
将分支恢复到您拉取之前的状态。
延伸阅读
- Pro Git 手册中的“使用远程仓库”