您的位置:首页 > 编程语言

Git代码管理

2017-07-17 20:22 106 查看

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  git 版本控制系统