文章目录
- 一、git 分支命名规范
- (1)master 主分支
- (2)develop 开发分支
- (3)feature 分支(一般简写为feat)
- (4)hotfix 分支(一般简写为fix)
- (5)release分支
- 二、基本开发
- 三、git commit详细说明
- 四、.gitignore的配置规则(允许使用正则)
- 五、git 删除分支和删除远程分支
- 六、回退代码
- 0:如何查看commit 节点id
- 1:Git Bash Here 上查看
- (2)github上查看
- (1)语法
- (2)语法参数hard分析
- (3)使用
- 3-1 回退到当前版本之前
- 3-2 回退到当前版本之后,回退指定版本
- 七、当前分支功能开发一半,需要终止修复线上Bug(git stash)
- 1:存储当前分支下的所有改动
- 1-1:第一次提交(这个警告无关紧要)
- 1-2:第二次提交
- 2:查看所有的存储列表
- 3:释放保存的内容,并将次保存内容删除(git stash pop)
- 4: git stash总结
- 八:总结
一、git 分支命名规范
(1)master 主分支
用于部署生产环境的分支,一般由develop以及hotfix分支合并,多人开发不推荐你直接修改master分支。
(2)develop 开发分支
一般开发的新功能时,feature分支都是基于develop分支下创建的,需要始终保持最新完成以及bug修复后的代码。
(3)feature 分支(一般简写为feat)
开发新功能时,以develop为基础创建feature分支。
分支命名: feature/ 开头的为特性分支, 命名规则: feature/user_header、 feature/user_footer。
实际多人开发的时候,会使用feat/你的工作名称_模块_功能_时间,如feat_zhagnsan_shop_detail_0101(说明:张三在1月1日添加了商品详情的功能)
(4)hotfix 分支(一般简写为fix)
分支命名: hotfix/ 开头的为修复分支,命名规则与 feature 分支类似。
线上出现紧急问题时,需要及时修复,以master分支为基线,创建hotfix分支,修复完成后,需要合并到master分支和develop分支。
(5)release分支
release 为预上线分支,发布提测阶段,会release分支代码为基准提测。
当然了,一般大型项目,你是没有直接合并到master的权限的。一个上线的项目在正规公司里,无论是添加功能还是修改bug,都会有请求合并的请求,然后需要你的上级review一下代码,确认无误后才会上线的。
二、基本开发
git add . // 将开发的内容暂存
git commit -m 'feat: add shop detail' // 将暂存区内容添加到本地仓库中
git push origin 分支名 // 提交本地代码到指定分支
git pull origin 分支名 // 拉取指定分支代码到本地
三、git commit详细说明
语法:git commit -m ['Type: message']
Type的类别说明:
feat: 添加新特性
fix: 修复bug
docs: 仅仅修改了文档
style: 仅仅修改了空格、格式缩进、都好等等,不改变代码逻辑
refactor: 代码重构,没有加新功能或者修复bug
perf: 增加代码进行性能测试
test: 增加测试用例
chore: 改变构建流程、或者增加依赖库、工具等
四、.gitignore的配置规则(允许使用正则)
作用:.gitignore文件可以让git提交的时候,过滤一些不需要提交的文件或文件夹,比如打包的文件、依赖安装包、编辑器的配置等。
具体的过滤规则有:
/build/ 不提交整个文件夹
*.zip 过滤所有.zip文件
/docs/do.txt 过滤某个具体文件
!src/ 不过滤该文件夹
具体语法:
以斜杠/开头表示目录;
以星号*通配多个字符;
以问号?通配单个字符
以方括号[]包含单个字符的匹配列表;
以叹号!表示不忽略(跟踪)匹配到的文件或目录; 从上到下执行,下面的命令会覆盖前面的
五、git 删除分支和删除远程分支
分支名为test
git branch -D test // 删除本地分支,直接删除
git push origin -d test // 删除远程分支
git remote prune origin // 清理本地不存在的远程分支,如远程上没有test分支,但你本地有
六、回退代码
0:如何查看commit 节点id
1:Git Bash Here 上查看
使用 git log命令即可,下面红框就是commit节点id,按住下箭头可以看之前版本的提交记录,按q关闭。
(2)github上查看
找到你项目后,点击code下面的提交commits,点击你需要版本右边的复制即可获取对应版本的commit节点id。
(1)语法
git reset commit节点id
git reset --hard commit节点id
(2)语法参数hard分析
(1)加–hard时:将本地的HEAD指针指向了<commit节点id>的版本,并重置了暂存区的内容,而且还修改重置了本地工作区的内容。
(2)不加hard时:只执行git reset <commit节点id>,只是将git仓库中的节点进行了回退,将HEAD指向了<commit节点id>的版本,此时主要用于自己代码的增量提交等。
(3)使用
3-1 回退到当前版本之前
git reset --hard HEAD^
解释:
HEAD^ 表示回退到上一个版本,HEAD^^表示回退到上上个版本,如果回退到100个 版本 ,我们直接简写为 git reset –-hard HEAD~100 。
3-2 回退到当前版本之后,回退指定版本
git reset --hard commit节点id
注意commit 节点id不错即可。
七、当前分支功能开发一半,需要终止修复线上Bug(git stash)
1:存储当前分支下的所有改动
git stash
git stash -m "存储的信息" // 最好加上这一步
1-1:第一次提交(这个警告无关紧要)
这的意思就是:警告:README.md中的LF将被CRLF取代。
该文件将在您的工作目录中有其原始的行尾已将工作目录和索引状态WIP保存在master上:617b816 feat:init(这时候我是在master分支上,最近一次提交的commit -m 是feat:init
)
1-2:第二次提交
Saved working directory and index state WIP on master: 617b816 feat: init
意思是:已将工作目录和索引状态WIP保存在master上:617b816 feat:init(这时候我是在master分支上,最近一次提交的commit -m 是feat:init
)
2:查看所有的存储列表
git stash list
git stash提交一次和提交两次查看存储列表,即
stash@{0}是最新的一次提交。
你完成第一步的时就可以切换到其他分支解决问题了,但是可以使用第二步的语法看看和第一步缓存代码的提示是否相同就更稳健一点。
3:释放保存的内容,并将次保存内容删除(git stash pop)
git stash pop
如上图所示,会将最近一次存储释放。使用git stash list 查看存储列表,已经由原来的两条存储变成了一条。
4: git stash总结
通过git stash指令,保存临时修改的代码到本地,该操作将清空工作区,(可以使用git stash list 确定一下stash@{0}确认是否缓存成功)然后切换分支去处理bug,完成后切回原来的分支,通过git stash pop还原之前的修改。
八:总结
参考文章:git代码规范 https://juejin.cn/post/6844903635533594632