一. GitHub Flow
- 版本控制及代码管理
- 分⽀类型
master: 主⼲分⽀, 代码经过严格测试, 最稳定, 可以随时上线,创建完一个git仓库后,默认是在master分支上
develop: 开发分⽀, 合并了各个开发者最新完成的功能, 经过了初步测试, 没有明显 BUG
feature: 功能分⽀, 开发中的状态, 代码最不稳定, 开发完成后需要合并到 develop 分⽀
- Pull Request: 拉取请求
开发者⾃⼰提交 Pull Request 通知团队成员来合并⾃⼰提交的代码。
通过此⽅式可以将合并过程暴露给团队成员, 让代码在合并之前可以被团队其他成员审
核, 保证代码质量。
- Code Review: 代码审核
代码逻辑问题
算法问题
错误的使⽤⽅式
代码⻛格及规范化问题
学习其他⼈的优秀代码
- 分⽀管理流程
二. 命令
git branch
1. git branch 查看分支
-
git branch -l 列出本地分支
此时本地分支只有master
-
git branch -r 查看远程分支
-
git branch -a 查看所有分支
2. 创建分支: git branch + 分支名
创建分支dev
可以看到,创建成功, * master 的意思是当前所在分支是master分支
git checkout
1. 切换分支: git checkout +分支名
可以看到,当前分支为dev分支
查看文件
该分支上的文件和master分支上的文件一样,因为创建dev分支前master分支上有add.py文件,所以当创建dev分支时,就有master分支上当时的内容
分支的作用
首先切到dev分支,创建一个bbb .py文件,
然后添加到暂存区,提交到git仓库
再切回master主分支
可以发现,master主分支并没有bbb .py文件,这是因为dev分支的内容的修改不影响主分支,只有将dev分支合并到master主分支才会将master主分支修改
2. 代码还原 : git checkout +文件名
对bbb .py文件进行修改,将乘号变为减号,
现在发现这个代码修改有误,要回退到修改前,使用命令 git checkout bbb .py
查看,该文件,发现被还原成修改前的代码
版本回退
在公司中如果一个项目新版本上线,但是出了bug,一般情况下不是直接修改bug,而是回退到之前的版本
首先查看日志,回退到最初的版本
查看此时dev分支上的内容,就回退到最初只有add .py文件的时候了,日志也只有一条
差异比对 : git diff
首先,通过vim命令去修改bbb .py文件,增加一个函数
-
输入命令 git diff
左边的绿色加号表示增加,这里增加了一个函数,如果是在原函数上修改,比如func上将 * 改为了其他符号,那么这一行就变成红色,左边符号为红色的 - 号 -
但是,diff本身的能力比较弱,如果代码量多,看起来就很繁琐
所以,使用命令
git difftool --tool=vimdiff
这个工具是安装vim和git后就有的
对比更加明显
- 对比分支
git diff master dev
显示bbb .py中增加了一个函数
还可以使用命令
git difftool --tool=vimdiff dev master
对比两个分支,分支前后顺序可改变
退出,使用 shift+: ,然后输入q,按enter键,重复两次命令,就能回到终端
分支合并 git merge + 分支名
当版本进行提交,将分支dev 合并到 主分支master 上
在dev分支上新建一个ccc .py文件,然后提交到git仓库,
切换到master主分支,然后使用命令 git merge dev 将dev分支合并到主分支