1.git 命令
git clone
git commit
git push
git pull
2.提交四部曲
本地修改文件 工作区 本地
Add增加文件到暂存区 本地
Commit提交修改文件到本地版本库 本地
push提交本地库的差异到远程库 远程
3.分支原理:
4.实战
基于develop创建myfeature分支
git checkout -b myfeature develop
合并一个功能到develop分支
git checkout develop
git merge --no-ff myfeature
删除myfeature分支
git branch -d myfeature
把开发分支推到主分支
git push origin develop
Release 分支
Release分支可能从develop分支分离而来,但是一定要合并到develop和master分支上,它的习惯命名方式为:release-*。
git checkout master
git merge --no-ff release-1.2
git tag -a 1.2
git branch -d release-1.2
一、初始化
1.组长A已经在github上创建了一个项目;
2.组员B在github上创建fork私有库(规范:系统名称+"-"+工号,例如arusa-56104);
3.组员B将代码copy到本地库;
二、开发代码
4.组员B在fork私有库中创建topic功能分支myfeature(规范:topic+"/"+版本号,例如:topic/v1.0);
5.组员B在本地切换到topic功能分支myfeature;
6.组员B修改代码,提交四部曲(edit、add、commit、push);
7.组员B把fork库修改的opic分支提交到集中库master分支,Pull Reques操作,maybe冲突
三、转测试
8.组长A在集中库创建release分支,集中库release分支自动同步到fork库release分支
四、修改bug
9.组员B在本地切换到release分支
10.组员B修改bug,提交四部曲(edit、add、commit、push);
11.组员B把fork库release分支提交到集中库release分支,Pull Request操作,maybe冲突
五、提交入基线
12.组长A把集中库release分支提交到集中库production分支,Pull Request操作,maybe冲突
六、回家
13.组长A把集中库release分支提交到集中库master分支
七、应急预案:
14.组长A创建hotfix热处理分支,应对特殊情况,集中库会自动同步到fork私有库;
15.组员B本地切换到hotfix分支;
16.组员B处理应急需求,修改代码,提交四部曲(edit、add、commit、push);
17.组员B把fork库hotfix分支提交到集中库hotfix分支,Pull Request操作,maybe冲突
18.组长A把集中库hotfix分支提交到集中库production分支,Pull Request操作,maybe冲突
19.组长A把集中库hotfix分支提交到集中库master分支,Pull Request操作,maybe冲突
注意:当完成一些功能开发的工作后,需要清除不用的分支,比如在步骤7后会将myfeature删除
正常版本开发
初始化:
4.1 创建FORK私有库(规范:系统名称+"-"+工号,例如arusa-56104)
4.2 clone创建本地库
研发:
4.3 fork库中创建topick分支(规范:topic+"/"+版本号,例如:topic/v1.0)
4.4 本地切换到topic分支
4.5 提交四部曲(edit、add、commit、push)
4.6 PR(fork库topic分支→集中库master分支)
转测:
4.7 本地创建release分支
改BUG:
4.8 本地切换到release分支
4.9 提交四部曲
4.10 PR(fork库release分支→集中库release分支)
提交入基线:
4.11 PR(集中库release分支→集中库production分支)
回家:
4.12 PR(集中库release分支→集中库master分支)
4.13 创建hotfix分支
4.14 本地切换到hotfix分支
4.15 提交四部曲
4.16 PR(fork库hotfix分支→集中库hotfix分支)
4.17 PR(集中库hotfix分支→集中库production分支)
4.18 PR(集中库hotfix分支→集中库master分支)
5.冲突解决
发生冲突的场景:
在进行Pull Request操作时,组员B将fork库的功能分支topic分支提交到集中库的master分支时,可能会发生冲突。
发生冲突的原因:
组员B对某文件进行了某项操作,可能组员C已经对该文件进行了操作,并且提交到了master上,而组员B本地的还是组员C未修改之前的文件。
解决冲突的基本原则:
1.检查更新到本地;
将远程Pull Request目标分支发布到fork私有库冲突所在的分支
2.编辑冲突;
3.提交到服务器