您现在的位置是:首页 >技术教程 >「2023 最新」 Github、Gitlab Git 工作流「常用」 git 命令、规范以及操作总结网站首页技术教程
「2023 最新」 Github、Gitlab Git 工作流「常用」 git 命令、规范以及操作总结
简介「2023 最新」 Github、Gitlab Git 工作流「常用」 git 命令、规范以及操作总结
Git commit 规范
关于提交信息的格式,可以遵循以下的规则:
- feat: 新特性,添加功能
- fix: 修改 bug
- refactor: 代码重构
- docs: 文档修改
- style: 代码格式修改
- test: 测试用例修改
- chore: 其他修改, 比如构建流程, 依赖管理
Git 基础知识
当我们通过git init创建或者git clone一个项目的时候,项目目录会隐藏一个.git子目录,其作用是用来跟踪管理版本库的
Git 中所有数据在存储前都计算校验和,然后以校验和来引用,所以在我们修改或者删除文件的时候,git能够知道
Git用以计算校验和的机制叫做 SHA-1 散列(hash,哈希), 这是一个由 40 个十六进制字符(0-9 和 a-f)组成字符串,基于 Git 中文件的内容或目录结构计算出来,如下:
24b9da6552252987aa493b52f8696cd6d3b00373
当我们修改文件的时候,git就会修改文件的状态,可以通过git status进行查询,状态情况如下:
- 已修改(modified):表示修改了文件,但还没保存到数据库中。
- 已暂存(staged):表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
- 已提交(committed):表示数据已经安全的保存在本地数据库中。
文件状态对应的,不同状态的文件在Git中处于不同的工作区域,主要分成了四部分:
- 工作区:相当于本地写代码的区域,如 git clone 一个项目到本地,相当于本地克隆了远程仓库项目的一个副本
- 暂存区:暂存区是一个文件,保存了下次将提交的文件列表信息,一般在 Git 仓库目录中
- 本地仓库:提交更新,找到暂存区域的文件,将快照永久性存储到 Git 本地仓库
- 远程仓库:远程的仓库,如 github
Git 常用指令
一个git项目的初始有两个途径,分别是:
- git init [project-name]:创建或在当前目录初始化一个git代码库
- git clone url:下载一个项目和它的整个代码历史
项目初始化后常用命令
- git checkout master//到达master分支
- git pull origin master//将远程主机 origin 的 master 分支拉取过来
- git branch//查看分支
- git branch -D xxxxx//本地删除分支(注:先切换至其他分支再删除)
- git push --delete //删除远程分支
- git checkout -b xxxx//创建新的分支,直接切到分支下
- git switch -c xxxx//创建新的分支xx并切换到分支下
- git checkout -b xxxx origin/已有分支名//根据已有分支创建新的分支「或者点击 VScode 左下角从 … 创建分支」
多人同时协作拉代码常用命令
- git remote -v //查看远程仓库
- git remote remove xxx //删除远程仓库的关联,xxx:origin
- git remote add origin [url] //创建远程仓库关联,origin是命名可修改
- git remote add upstream [url]//创建远程仓库关联,upstream 是命名可修改,做不同的关联仓库(一般需要同时关联自己的和上游仓库)
- git fetch upstream //将远程主仓库(upstream)所有的分支fetch下来,拉主仓库远程代码
- git rebase upstream/master //合并远程主仓库的master分支
- git rebase --continue //冲突解决完之后继续执行
- git rebase --abort //当出现问题时,取消本次合并
- git stash //暂存更改到本地(新建文件先git add .)
- git stash pop//取分支上的更改
- Yarn lint //当报格式化错误时执行,根据报错信息进入文件格式化
问题
- git merge 和 git rebase 区别
https://vue3js.cn/interview/git/git%20rebase_%20git%20merge.html
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。