Appearance
github协同开发操作文档
clone 整个项目
sh
git clone https://github.com/limingth/microduino.git
cd microduino
git branch -a
git log
切换分支
sh
git checkout dev/limingth
git checkout development
git checkout master
每次切换分支后,确认所在分支的相关信息
sh
git branch
git log
拉取development最新代码到自己的分支下
sh
git checkout dev/limingth
git reset --hard origin/development
git log
git branch
出现冲突
sh
git rebase --skip (可能会用到)
提交自己的新修改
sh
git commit -a -m "[Maodou]: Shipping: #123, update something"
git push origin dev/limingth
[GIT] 第二阶段GIT操作指南
说明
由于各种原因,安全性跟CI的结合问题,我们觉得还是应该回归到Github传统的流程。也就是:
- 开发者各自fork项目的repo到自己Github账户下
- 每次开发同步到项目的repo然后开发
- push自己的开发分支到自己Github账户下面的fork的项目repo
- 发送pull request给项目管理员
- 等待review或者merge
分支规划
采用git remote add命令给自己本地的开发repo添加分支,我们用一下约定来处理分支的名字
- origin - 直接指向项目的repo
- dev_name - 指向自己fork出来的repo例如我的叫cooloney
- reaction - 指向reaction 原版的repo
具体操作
Fork 项目repo到自己Github账户(只需要setup一次)
* 用自己账户登录Github
* 进入Microduino项目repo[主页](https://github.com/limingth/microduino)
* 点击右上角的[*fork*按钮](https://github.com/limingth/microduino#fork-destination-box)
* 1分钟不到,就会在自己的Github项目下面建立一个私有的项目
本地开发的配置(以我的账户示例,也只要setup一次)
- 从李明老师的项目repo clone最新的代码
sh
git clone --recursive https://github.com/limingth/microduino.git
- 添加自己fork的repo用来发布代码和发送pull request
sh
cd microduino
git remote add cooloney https://github.com/cooloney/microduino.git
- 添加reaction的repo用来跟reaction upstream同步
sh
git remote add reaction https://github.com/reactioncommerse/reaction.git
开发流程(每次开发都要运行)
sh
git fetch origin
git checkout -b development origin/development (create a new branch for development)
git reset --hard origin/development (reset the local branch to latest origin development branch)
git rebase origin/development (rebase local change onto origin development branch)
do some work ...
git commit changes
git push --force cooloney development
运行测试(第一次运行时需要下载相关的package)
sh
git clone --recursive https://github.com/cooloney/microduino.git
./microduino
发送pull request(每次push都需要)
- 登录自己repo的Github主页
- 点击pull request
- 按照下图配置好pull request
<img width="947" alt="screen shot 2015-10-06 at 12 23 08 am" src="https://cloud.githubusercontent.com/assets/758488/10302377/b2d14b5e-6bc0-11e5-9395-b72e0b98616e.png">
Package Git使用指南
说明
- 每一个Package也是一个单独的repo
- 我们只是加入了那些我们需要修改的package,没有修改的package我们用reaction原版的代码。
- 请登陆自己的Github账户fork相应的package repo到自己的Github账户
配置开发分支
sh
cd packages/core
git remote add cooloney git@github.com:cooloney/reaction-core.git
git remote add reaction git@github.com:reactioncommerce/reaction-core.git
$ git remote -v
cooloney git@github.com:cooloney/reaction-core.git (fetch)
cooloney git@github.com:cooloney/reaction-core.git (push)
origin git@github.com:limingth/reaction-core.git (fetch)
origin git@github.com:limingth/reaction-core.git (push)
reaction git@github.com:reactioncommerce/reaction-core.git (fetch)
reaction git@github.com:reactioncommerce/reaction-core.git (push)
取出最新的代码开发
sh
git fetch origin
git checkout -b development origin/development (create a new branch for development)
git reset --hard origin/development (reset the local branch to latest origin development branch)
git rebase origin/development (rebase local change onto origin development branch)
do some work ...
git commit changes
git push --force cooloney development
发送pull request(每次push都需要)
- 登录自己repo的Github主页
- 点击pull request
标准PR流程
以我的账号dev1为例,首先需要在master下Fork到自己账户下
首次运行,只需要运行一次
sh
git clone https://github.com/dev1/h5.git
git submodule init
git remote add upstream https://github.com/master/h5.git
git checkout -b dev upstream/dev
每次都需要运行
sh
git submodule update
git fetch upstream
git reset --hard upstream/dev
work
sh
git rebase upstream/dev
git push -f origin master
git init 操作
Git 全局设置
git config --global user.name "wanglei"
git config --global user.email "wanglei@micous.com"
创建一个新仓库
sh
git clone https://gitlab.int.nbt.ren/gsc/activity.git
cd activity touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
推送现有文件夹
sh
cd existing_folder
git init
git remote add origin https://gitlab.int.nbt.ren/gsc/activity.git
git add .
git commit -m "Initial commit"
git push -u origin master
推送现有的 Git 仓库
sh
cd existing_repo
git remote rename origin old-origin
git remote add origin https://gitlab.int.nbt.ren/gsc/activity.git
git push -u origin --all
git push -u origin --tags