【Git】3年前端Git使用总结
1 Git 流程图
Workspace
:工作区Index / Stage
:暂存区Repository
:本地仓库Remote
:远程仓库
2 注释规范
fix:修补
feat:新功能(feature)
optimize:优化
perf: 改进性能的变更
test:新增测试用例
style: 格式(不影响代码运行的变动)
chore:小改动. 一般为仅仅一两行的改动
delete: 删除
br: 针对bug号,用于向测试反馈bug列表的bug修改情况
docs:文档变更相关
refactor: 代码重构变更
3 基本操作
3.1 git clone
# 克隆代码
git clone http://mengn@gitlab.open.com.cn/mkw/imooc/jiuyeban.git
# 克隆制定分支代码
git clone -b mengn http://mengn@gitlab.open.com.cn/mkw/imooc/jiuyeban.git
3.2 git status
// 查看工作目录当前状态 git status
3.3 git add
# 添加某个文件到暂存区,后面可以跟多个文件,以空格区分
git add xxx
# 添加当前更改的所有文件到暂存区。
git add .
3.4 git commit
# 提交暂存的更改,会新开编辑器进行编辑
git commit
# 提交暂存的更改,并记录下备注
git commit -m "you message"
3.5 git push
# 本地分支代码同步到远程
git push
3.6 git pull
# 拉取远程仓库代码
git pull
4 分支操作
4.1 git chekcout -b
# 创建并切换分支
git checkout -b course_contrast_20220302
4.2 git checkout
# 注:切换分之前先切换到主分支
git checkout master
git checkout mengn
4.3 git push -u origin
# 分支推远程
git push -u origin mengn
4.4 git merge
git pull
git checkout master
如果没有pull master代码,会提示当前分支落后,push会失败
git pull
master要mengn代码
git merge 20211122_work_order
git会出现 merge branch mengn
没有commit,合并文件为你新增的文件
1、合并完成,直接push
2、自动合并失败,修复冲突,然后提交结果
以下文件将被拉取,合并前请先提交(必)
add
commit
git push
git status
4.5 git push origin xx:master
# 合并分支
git push origin xxxx:master
4.6 git branch -d
# 删除本地分支
git branch -d mengn
4.7 git push origin --delete
# 删除远程分支
git push origin --delete mengn
- 本地推远程:
git push origin
5 工作操作
5.1 git checkout
使用git checkout
来撤销工作区修改文件
# 撤销(工作区)
git checkout smarty/template/class/templet/531.phtml
# 清除未被 add 或被 commit 的本地修改
git clean -df
5.2 git reset HEAD
使用git reset HEAD
来撤销已经add
文件
# 撤删add的所有文件
git reset HEAD
# 对某一个文件撤删
git reset HEAD src/mode/hello.java
5.3 git reset
使用git reset
来撤销已经commit
文件
git reset smarty/template/class/templet/531.phtml
5.4 git commit --amend
使用git commit --amend
来修改commit
注释
第一步:
git commit --amend
第二步:
进入vim编辑状态,修改保存
第三步:
git push origin master(分支) --force
5.5 git stash
使用 git stash
来暂存文件
第一步:修改好的代码,先add
第二步:暂存文件
git stash //把本地的改动暂存起来
git stash save "message" //执行存储时,添加备注,方便查找。
git stash pop // 应用最近一次暂存的修改,并删除暂存的记录
git stash list // 查看 stash 有哪些存储
git stash apply // 应用某个存储,但不会把存储从存储列表中删除,默认使用第一个存储,即 stash@{0},如果要使用其他个,git stash apply stash@{$num} 。
git stash clear // 删除所有缓存的 stash
6 git CZ
cz-customizable
默认会去读取项目中.cz-config.js
配置,所以我们还要新建文件.cz-config.js
。
// 可选类型
types: [
{ value: 'feat', name: 'feat: 新功能' },
{ value: 'fix', name: 'fix: 修复' },
{ value: 'docs', name: 'docs: 文档变更' },
{ value: 'optimize', name: 'optimize: 优化' },
{ value: 'style', name: 'style: 代码格式(不影响代码运行的变动)' },
{ value: 'refactor', name: 'refactor: 重构(既不是增加feature,也不是修复bug)' },
{ value: 'perf', name: 'perf: 性能优化' },
{ value: 'test', name: 'test: 增加测试' },
{ value: 'chore', name: 'chore: 构建过程或辅助工具的变动' },
{ value: 'revert', name: 'revert: 回退' },
{ value: 'build', name: 'build: 打包' }
],
// 消息步骤
messages: {
type: '请选择提交类型:',
customScope: '请输入修改范围(可选):',
subject: '请简要描述提交(必填):',
body: '请输入详细描述(可选):',
footer: '请输入要关闭的issue(可选):',
confirmCommit: '确认使用以上信息提交?(y/n/e/h)'
},
// 跳过问题
skipQuestions: ['body', 'footer'],
// subject文字长度默认是72
subjectLimit: 72
}
当我们准备要提交代码,git add .
> git commit -m 'xx'
, 这里我们用 git cz
取代git commit
操作 >git push
7 git flow工作流
代码管理的标准工作流程,分为:
- 集中式工作流
和SVN
一样,集中式工作流以中央仓库作为项目所有修改的单点实体,所有修改都提交到master
这个分支上。
- 功能分支工作流
以功能分支命名
- git flow工作流(最佳实践)
分支使用相对有条理,确保线上的版本稳定,是现在最广泛采用的一种工作流程。
包含如下几个关键分支:
- master --主干
- hotfix --热部署 (修复线上bug)
- release --分支 (测试代码分支)
- dev--开发分支
- feature ---功能
master下的代码必须保证线上直接运行
创建开发分支 develop
根据dev分支创建feature_login mengn lidy
开发代码 -提交到feature分支
合并到dev分支
release 基于dev创建
hotfix基于dev分支创建
开发完了分支都删除
以上便是个人在工作中常用的 git
命令,希望本文能对你有所帮助。
转载自:https://juejin.cn/post/7268934037523284020