假设已有2个Github账号,一个作为Maintainer
,一个作为Contributor
。
Maintainer
创建一个项目,然后请Contributor
一起开发。
Maintainer新建一个项目
Maintainer
前往
https://github.com/new
新建一个新的仓库。
点击Create repository
完成创建。
Maintainer
克隆自己的项目到自己的设备上
git clone https://github.com/LK007CX/git_test.git # 克隆远程仓库至本地
echo "# git_test" >> README.md # 新建README
git init # 初始化
git add README.md # 把文件添加到仓库
git commit -m "first commit" # 把文件提交到仓库
git remote add origin https://github.com/LK007CX/git_test.git # 关联远程仓库
git push -u origin master # 把本地库的所有内容推送到远程库上
Maintainer
查看Github上的项目文件。
Maintainer后续提交
git pull # 从远程获取最新版本并merge(合并)到本地
# 本地开发
git add hello.py # 把文件添加到仓库
git commit -m "add a py file" # 把文件提交到仓库
git push origin master # 提交本地文件至远程仓库
Contributor初次提交
Contributor
登录自己的Github,进入Maintainer
的Github空间(通过搜索),fork
需要协同开发的项目。
Contributor
克隆自己Github里的项目到本地
git clone https://github.com/SmartisanLee/git_test.git # 注意这里是Contributor的仓库地址
Contributor
能直接clone
Maintainer
的GitHub里的代码。
Contributor
能直接clone
Maintainer
的GitHub里的代码,但是做修改后不能push
回去。
Contributor
新建一个开发分支
cd git_test # 切换到工作目录
git checkout -b dev # 新建一个开发分支
- 把
Maintainer
的项目添加到Contributor
的远程仓库
git remote add upstream https://github.com/LK007CX/git_test.git
- 将
Maintainer
的分支取下来并更新到本地
git remote update
git fetch upstream master
- 合并
Maintainer
的分支到本地
git rebase upstream/master
Contributor
本地开发Contributor
添加一个文件并提交commit
git add foo.py
git commit -m "add foo.py"
git push -u origin dev
- 进入
Contributor
的GitHub, 提交一个PR
Maintainer
同意后即可完成协作开发。
Contributor后续提交
Contributor
新建一个开发分支
cd git_test # 切换到工作目录
git checkout -b dev # 新建一个开发分支
- 把
Maintainer
的项目添加到Contributor
的远程仓库
git remote add upstream https://github.com/LK007CX/git_test.git
- 将
Maintainer
的分支取下来并更新到本地
git remote update
git fetch upstream master
- 合并
Maintainer
的分支到本地
git rebase upstream/master
-
Contributor
本地开发 -
Contributor
添加一个文件并提交commit
git add foo.py
git commit -m "add foo.py"
git push -u origin dev
- 进入
Contributor
的GitHub, 提交一个PR