Git实践与分支模型

参考链接:
https://education.github.com/git-cheat-sheet-education.pdf
https://www.jianshu.com/p/fc3b3bce5d8a
https://www.conventionalcommits.org/en/v1.0.0/#specification

一、Git配置

1、账号配置
git config --global user.name "[name]"
git config --global user.email "[email address]"
2、功能配置
git config --global color.ui auto

# true:提交时转换为LF,检出时转换为CRLF
# input:提交时转换为LF,检出时不转换
# false:提交检出均不转换
git config --global core.autocrlf input
# true:拒绝提交包含混合换行符的文件
# false:允许提交包含混合换行符的文件
# warn:提交包含混合换行符文件时给出警告
git config --global core.safecrlf true
3、查看配置
git config --global -l

二、初始仓库

1、本地创建
  • 初始化仓库
git init
  • 关联远程
git remote add origin [remote-ssh]
  • 修改分支名
git branch -m [branch-name]
  • 推送远程
git push origin [branch-name]
2、远程仓库
  • 拉取仓库
git clone [remote-ssh] -b [branch-name] [folder-name]

三、版本控制

1、处理改变
  • 添加文件
git add [file]
  • 提交文件
git commit -m "Commit Message."
  • 查看状态
git status
  • 查看差异
git diff
git diff --staged
git diff [first-branch]...[second-branch]
  • 撤销修改
git reset [file]
2、重构文件名
  • 移除文件
# 从文件系统和版本控制中移除文件
git rm [file]
# 仅从版本控制中移除文件
git rm --cached [file]
  • 修改文件名
git mv [file-original] [file-renamed]
3、查看历史
  • 查看历史
git log
git log --follow [file]
  • 查看指定提交信息
git show [commit]
4、重新提交
  • 重新提交
git reset [commit]
git reset --hard [commit]
5、保存片段
  • 暂存修改
# 暂存跟踪文件的所有修改
git stash
# 恢复最近保存的文件
git stash pop
  • 查看暂存
git stash list
  • 丢弃暂存
git stash drop

四、分支管理

1、本地分支
  • 查看分支
git branch
  • 创建分支
git brach [branch-name]
  • 切换分支
git checkout [branch-name]
  • 创建并切换分支
git checkout -b [branch-name]
  • 合并分支
git merge [branch-name]
  • 删除本地分支
git branch -d [branch-name]
2、远程分支
  • 提交远程
git push origin [branch-name]

# 在需要时候,可以增加-f参数,强制覆盖远程分支。
git push origin [branch-name] -f
git push origin [local-name]:[origin-name] -f 
  • 删除远程分支
git push origin -d [branch_name]

五、分支模型

1、GitFlow

在这里插入图片描述

  • master:主分支,用于版本发布,主分支的每个版本都是质量稳定和功能齐全的发布版。
  • hotfix:问题修复,从发布版本的master分支创建,问题修复后将合并到master分支,并标记上对应的版本标签(tag)。
  • develop:开发分支,用于日常开发工作,存放最新的开发版代码。达到稳定状态并可以发布版本时,代码会被合并到master分支,并标记上对应的版本标签(tag)。
  • feature:功能开发,从develop分支创建,用于新功能或新模块的开发,开发完成后需要合并回develop分支。
  • release:版本发布,从develop分支创建,用于准备待发布版本,在这个分支上仅对待问题进行修复及相关发布工作,完成后合并到master分支并标记上对应的版本标签(tag),同时也会合并回develop分支。
2、GitHub Flow

在这里插入图片描述

  • master:主分支,唯一的一个长期分支,所有发布版本从该分支进行创建,进行测试发布。
  • branch:开发分支,所有新功能、新模块开发及bug修改,从master创建对应的新分支,并基于新的分支进行开发、调试,完成后通过merge request合并到master分支。
3、GitLab Flow

在这里插入图片描述

  • production:生产分支,从pre-production创建,基于众测后较稳定的版本发布稳定版本的产品,。
  • pre-production:预览分支,从master分支创建,调整发布预览版本的产品,为正式产品发布做准备。
  • master:主分支,包含产品所有功能代码,产品迭代增加的功能开发,bug修复都将合并到该分支。
  • feature:功能开发,从master分支创建,用于已有产品的功能增加及bug修复,完成后将合并到master分支中。
  • release:发布分支,与pre-production、production分支类似,基于master分支创建,release分支通常为非长期维护production分支。

六、提交规范

Git commit消息基本格式为:

<type>[optional scope]: <description>
# BLANK LINE
[optional body]
# BLANK LINE
[optional footer(s)]
1、<type>

用于说明commit的类型,通常有:

  • feat:新增功能。

  • fix:bug修复。

  • docs:文档更新。

  • style:代码风格修改。

  • refactor:重构代码。

  • build:项目构建系统的修改提交。

  • test:新增测试用例或更新测试用例。

  • perf:性能优化。

  • ci:持续集成相关修改提交。

  • chore:不属于以上类型的其他类,比如构建流程、依赖管理。

  • revert:回退到某一指定的更早的提交。

2、[optional scope]

用于说明commit影响的范围或者模块,可选。

3、<description>

该commit的简短描述,以动词开头,第一个字母大写,并且结尾不加句号”.“

4、[optional body]

对该commit的详细描述,可选。

5、[optional footer(s)]

本次commit的修改脚注,可选。通常针对重大修改使用[ BREAKING CHANGE: ]进行标记。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ftswsfb

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值