add 获取远程库

pull/2/head
waylau 11 years ago
parent 4d1a045280
commit a2dc85ac34

@ -0,0 +1,67 @@
Fetching a remote 获取远程库
===========
当与其他人的库进行交互时,需记住下面几个 Git 命令:
* git clone
* git fetch
* git merge
* git pull
上述命令对于跟[远程库](https://help.github.com/articles/about-remote-repositories)交互非常有用。`clone` 和 `fetch`是通过库的 URL 来下载远程库源码到你本地的计算机。 `merge` 是合并不同人的工作到你的工作中。`pull` 是 `fetch``merge`的结合。
下面详述命令:
##Clone 复制
复制人家的库,用 `git clone`
$ git clone https://github.com/USERNAME/REPOSITORY.git
# Clones a repository to your computer
你可以选[不同的 URL](https://help.github.com/articles/which-remote-url-should-i-use) 来复制 库。当登录系统,可以看到:
![##Clone ](https://help.github.com/assets/images/help/repository/remotes-url.png)
当执行 `git clone`,发生下面动作
* 新的文件夹 `repo`生成
* 被初始化成一个 Git 库
* 远程库名 `origin` 被生产,执行了你所复制的 URL
* 所有的 库的文件 和提交 都被下载下来
* 默认 分支 (通常为 `master`) 被检出
在远程库中的所有 foo 分支,相应的远程跟踪分支`refs/remotes/origin/foo`已经创建在你的本地库。通常你可以把这样的远程跟踪分支的命名为 `origin/foo`
##Fetch
`git fetch` 是用来人家新的工作内容。获取远程库上的新的跟踪是不需要处理合并变化的。
如果你已经有一个本地仓库与[远程URL](https://help.github.com/articles/adding-a-remote)设置为所需的项目,你可以获取所有新的信息通过使用 `git fetch * RemoteName *`
$ git fetch remotename
# Fetches updates made to a remote repository
否则,你可以添加一个[新的远程](https://help.github.com/articles/adding-a-remote)然后获取。
##Merge
Merge 是用来合并你的本地变化和其他人制作的变化。
通常,你合并远程跟踪分支(比如,一个从远程库获取的分支)到你的本地分支中
$ git merge remotename/branchname
# Merges updates made online with your local work
##Pull
`git pull` 是一个快捷的 实现 `git fetch``git merge` 相同的命令
$ git pull remotename branchname
# Grabs online updates and merges them with your local work
因为 `pull` 执行合并对检索到的变化,你应该确保你的工作在 `pull` 之前是 `commit` 的。如果你遇到一个[合并冲突](https://help.github.com/articles/resolving-a-merge-conflict-from-the-command-line)无法解决,或如果你决定退出合并,你可以用 `git merge --abort` 来返回。
##Further reading 扩展阅读
* Pro Git 书中的 ["Working with Remotes"](http://git-scm.com/book/en/Git-Basics-Working-with-Remotes)
* [GitGuys: Adding and Removing Remote Branches](http://www.gitguys.com/topics/adding-and-removing-remote-branches/)
Loading…
Cancel
Save