当与其他人的库进行交互时,需记住下面几个 Git 命令:
- git clone
- git fetch
- git merge
- git pull
上述命令对于跟远程库交互非常有用。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 来复制 库。当登录系统,可以看到:
当执行 git clone
,发生下面动作
- 新的文件夹
repo
生成 - 被初始化成一个 Git 库
- 远程库名
origin
被生产,执行了你所复制的 URL - 所有的 库的文件 和提交 都被下载下来
- 默认 分支 (通常为
master
) 被检出
在远程库中的所有 foo 分支,相应的远程跟踪分支refs/remotes/origin/foo
已经创建在你的本地库。通常你可以把这样的远程跟踪分支的命名为 origin/foo
##Fetch
git fetch
是用来人家新的工作内容。获取远程库上的新的跟踪是不需要处理合并变化的。
如果你已经有一个本地仓库与远程URL设置为所需的项目,你可以获取所有新的信息通过使用 git fetch * RemoteName *
:
$ git fetch remotename
# Fetches updates made to a remote repository
否则,你可以添加一个新的远程然后获取。
##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
的。如果你遇到一个合并冲突无法解决,或如果你决定退出合并,你可以用 git merge --abort
来返回。
##Further reading 扩展阅读