您现在的位置是:首页 >技术教程 >「2023 最新」 Github、Gitlab Git 工作流「常用」 git 命令、规范以及操作总结网站首页技术教程

「2023 最新」 Github、Gitlab Git 工作流「常用」 git 命令、规范以及操作总结

zoe_ya 2024-06-08 00:00:02
简介「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 //当报格式化错误时执行,根据报错信息进入文件格式化

问题

  1. git merge 和 git rebase 区别

https://vue3js.cn/interview/git/git%20rebase_%20git%20merge.html

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。