我们在创建一个Git工程项目时, 至少可以看到一个名为 origin 的远程库, git 默认使用这个名字来标识你本地工程所对应的远程仓库。
一. 添加远程仓库:
一个git工程除了默认的origin 仓库外,还可以为其添加一个新的远程仓库, 可以随意指定一个名字, 运行 git remote add [shortname] [url]
[html] view plain copy
- $ git remote add new_repository_name git://github.com/paulboone/ticgit.git
这样就相当与为你本地的git 工程项目配置了两个远程仓库,当然你本地的git 工程默认是绑定到origin 仓库的。执行$ git remote 命令将会显示所有远程仓库名称:
[html] view plain copy
- $ git remote
- origin
- new_repository_name
二. 问题描述: 当我们 在github上fork出一个项目后,如果原有的项目更新了,怎样保持我们fork出来的项目和原有项目保持同步呢,并提交我们的代码呢?
1. 首先添加你从github上fork的源仓库到本地的git工程
[html] view plain copy
- $ git remote add source_repository_name [url]
2. 假设origin仓库和source_repository_name源仓库都有一个分支branch_name,你在该分支上进行开发,将本地修改commit后,在每次Push前做如下操作,即可实现和上游source_repository_name仓库同步:(需要注意的是在操作step2之前,一定要将checkout到branch_name所指定的branch)
[html] view plain copy
- (1)同步源仓库的信息到本地
- $ git remote update source_repository_name
- (2)将源仓库的信息merge到本地分支:
- $ git checkout branch_name
- $ git rebase source_repository_name/branch_name
3. $ git push 将最新同步的代码和修改,提交到你的origin仓库
4. Github上提出Push Request即可,将你的origin仓库的所有修改提交到source_repository_name仓库
GitHub常用的开发协同流程为:将别人的仓库fork成自己的origin仓库 → git clone origin仓库到本地 → 本地添加fork源仓库 → 工作前先git remote update下fork源保持代码较新 → coding → push回自己 → github上提出Push Request即可