Git代码管理

来源:互联网 发布:安卓软件搜索 编辑:程序博客网 时间:2024/06/15 16:38

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修复

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:

git rebase

–rebase的本意是想让事情的发展看起来很连续和优美,而不是多出很多无用的merge commit 。

Git merge:
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镜像仓库

如下图所示解决问题:
管理 git仓库 和  fork镜像仓库

11、总结

要把git全部掌握,请各个牢记下图

基本示意图

如有疑问请联系一下邮件:niyuelin1990@163.com

原创粉丝点击