Fetching a remote 获取远程库

当与其他人的库进行交互时,需记住下面几个 Git 命令:

  • git clone
  • git fetch
  • git merge
  • git pull

上述命令对于跟远程库交互非常有用。clonefetch是通过库的 URL 来下载远程库源码到你本地的计算机。 merge 是合并不同人的工作到你的工作中。pullfetchmerge的结合。

下面详述命令:

Clone 复制

复制人家的库,用 git clone

  1. $ git clone https://github.com/USERNAME/REPOSITORY.git
  2. # Clones a repository to your computer

你可以选不同的 URL 来复制 库。当登录系统,可以看到:

##Clone

当执行 git clone,发生下面动作

  • 新的文件夹 repo生成
  • 被初始化成一个 Git 库
  • 远程库名 origin 被生产,执行了你所复制的 URL
  • 所有的 库的文件 和提交 都被下载下来
  • 默认 分支 (通常为 master) 被检出

在远程库中的所有 foo 分支,相应的远程跟踪分支refs/remotes/origin/foo已经创建在你的本地库。通常你可以把这样的远程跟踪分支的命名为 origin/foo

Fetch

git fetch 是用来人家新的工作内容。获取远程库上的新的跟踪是不需要处理合并变化的。

如果你已经有一个本地仓库与远程URL设置为所需的项目,你可以获取所有新的信息通过使用 git fetch * RemoteName *

  1. $ git fetch remotename
  2. # Fetches updates made to a remote repository

否则,你可以添加一个新的远程然后获取。

Merge

Merge 是用来合并你的本地变化和其他人制作的变化。

通常,你合并远程跟踪分支(比如,一个从远程库获取的分支)到你的本地分支中 ​
$ git merge remotename/branchname

  1. # Merges updates made online with your local work

Pull

git pull 是一个快捷的 实现 git fetchgit merge 相同的命令

  1. $ git pull remotename branchname
  2. # Grabs online updates and merges them with your local work

因为 pull 执行合并对检索到的变化,你应该确保你的工作在 pull 之前是 commit 的。如果你遇到一个合并冲突无法解决,或如果你决定退出合并,你可以用 git merge --abort 来返回。

Further reading 扩展阅读