Git代码管理
Git代码管理 之我见:
- 1、GIT简介
- 2、GIT常见指令
- 3、GIT代码规范
- 4、功能开发
- 5、BUG修复
- 6、代码提交
- 7、Git merge/git rebase
- 8、代码评审
- 9、其他有效指令
- 10、问题
- 11、总结
1、GIT简介
Git是目前世界上最先进的分布式版本控制系统,每个电脑上都是完整的版本,如果多人协作开发,只要推送各自的修改就行 —— [链接 ]
集中式版本控制系统特点:版本集中存放在中央服务器,使用的时候先down,改完再提交。如:SVN
优点
1. 简单的设计
2. 对非线性开发模式的强力支持(允许成千上万个并行开发的分支)
3. 完全分布式
4. 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)
5. 有效方便全面的分布式代码管理
2、GIT常见指令
1.生存密钥: ssh-keygen -t rsa -C “xxxxx@163.com”
2.获取源码: git clone git@github.com:xxxx/proxy.git
3.索引:git add
4.提交:git commit
5.推送本地更新到远程: git push origin master
6.更新远程更新到本地: git pull origin mas
7.暂存:git stash
8.下载远程分支: git pull –rebase
3、GIT代码规范
Master主分支
Hotfix 分支作为紧急修复,基于 master
Tag主分支发布版本,又称Release
Develop 是开发中阶段的代码
Feature 分支用于功能的开发分支,基于 develop
Fix 分支用于修复 BUG 的开发分支,基于 develop
4、功能开发
Commit1: 1.git add –a 2.git commit -m
Commit2: 1.git add –a 2.git commit -m/-amend
注意:合并前:1.Git checkout develop 2. git pull –rebase develop 3. git checkout feature 4.git rebase develop
5、BUG修复
fix/xxx-xxx (命名一个 develop 线上的修复)
hotfix/xxx-xxx (命名一个 master 线上的修复)
注意:合并fix:1.Git merge 2.git tag 3. git rebase develop
6、代码提交
Merge提交详细详细:[类型] +[#TASK]+ 标题
类型有以下几种:
FEATURE: 功能开发 + [#TASK] + xxx(功能名称)
FIX: 普通 BUG 修复 + [#TASK] + xxx(BUG 名称)
HOTFIX:线上 BUG 修复 + [#TASK] +xxx(BUG 名称)
UPDATE:优化和重构 + [#TASK] + xxx(优化、重构名称)
DOC:文档描述 + [#TASK] + xxx(文档名称)
RELEASE: 此次包的所有更新 + [#TASK] + xxx(版本编号)
如:
[FEATURE] [#1] OpenApm Hbase优化
1、 HbaseProxy 新增消息队列功能
2、 HbaseProxy 新增同步处理功能
3、xxx
7、Git merge/git rebase
原始节点:
Git rebase:
–rebase的本意是想让事情的发展看起来很连续和优美,而不是多出很多无用的merge commit 。
Git merge:
总结:如果你想要保存项目完整的历史,并且避免重写公共分支上的commit, 你可以使用 git merge;
如果你想要一个干净的、线性的提交历史,没有不必要的合并提交,你应该使用 git rebase
如:主分支合并到开发分支用rebase,开发分支合并到主分支用merge;
8、代码评审
arc diff:是用来提交代码审核片段的,
例如在 develop 开出了新的分支 feature/test,在这个分支上写了相应的代码,
并且使用了 commit 进行了提交。
随后这个代码需要交给他人进行审核
arc land : 将审核通过的代码合并到develop
参考: Phabricator 功能: http://www.jianshu.com/p/b5514474d079
https://github.com/phacility
9、其他有效指令
git mgere/ git merge –-no-ff/git mereg – squash: fast-forward/保留分支的commit历史/commit历史压缩为一次
git reset –soft xxx: 切换到摸个版本
git checkout -b branch_name tag_name 切换tag到新分支
git fetch –p :更新本地远程分支
git checkout – xxx.txt :撤销修改
git push origin –delete develop:删除远程分支
git diff: 代码比对
git push origin [tagname]: push单个tag,命令格式为
10、问题
1.如何同步进行 项目重构和 新功能开发
如下图所示解决问题:
2.如何同时管理 git仓库 和 fork镜像仓库
如下图所示解决问题:
11、总结
要把git全部掌握,请各个牢记下图
如有疑问请联系一下邮件:niyuelin1990@163.com