Git 常用命令与工作流程总结

server/2024/9/20 4:01:21/ 标签: git

Git 常用命令与工作流程总结

基本工作原则

  • 勤拉取:定期从远程仓库拉取最新代码,确保本地代码与远程同步。
  • 勤提交:保持小步提交,便于追踪代码变更。
  • 勤合并:频繁合并分支,减少未来冲突。

配置仓库信息

全局配置:


git config --global user.name "用户名"
git config --global user.email "邮箱地址"

项目级配置:

git init
git config --local user.name "用户名"

查看配置:

git config --list

三个区

  • 工作区:本地修改文件的地方。
  • 暂存区:使用 git add 后,文件进入暂存区,等待提交。
  • 版本库:使用 git commit后,文件进入版本库,永久存储。

常用 Git 命令

初始化仓库:

git init

添加文件到暂存区:

git add 文件名
git add .  # 添加所有修改

提交到版本库:

git commit -m "提交信息"

查看提交历史:

git log  # 完整日志
git log --oneline  # 简要日志

查看工作区状态:

git status

比较差异:

git diff  # 工作区与暂存区差异
git diff --cached  # 暂存区与最后一次提交差异

回退到某个版本:

git reset --hard 版本号

查看所有 Git 操作记录:

git reflog

撤销某次提交:

git revert commit-id

分支管理

创建分支:

git branch 分支名

查看所有分支:

git branch

切换分支:

git checkout 分支名

合并分支:

git merge 分支名

删除分支:

git branch -d 分支名

远程仓库管理

克隆远程仓库:

git clone 仓库地址

拉取远程分支:

git pull 远程仓库名 分支名

推送分支到远程仓库:

git push -u origin 分支名

Git Reset 用法

软回滚(保留工作区和暂存区的更改):

git reset --soft HEAD~1

混合回滚(重置暂存区,保留工作区的更改):

git reset --mixed HEAD~1

硬回滚(重置工作区和暂存区的更改):

git reset --hard HEAD~1

Rebase 和 Merge

Merge:适用于多个人开发同一个模块时,保留提交记录,便于排查问题。

  • 产生额外的合并提交:在进行 merge 操作时,两个分支(例如 master 和 feature)会合并到一起,生成一个额外的合并提交(merge commit)。这个合并提交包含了两个分支的历史,形成了一个不连续的、叉开的历史树结构。

  • 保留完整的提交历史:合并后的历史会包含两个分支所有的提交记录。这意味着每个分支的独立历史都被保留,整个历史图上会出现多条分支轨迹。

Rebase:适用于模块无关联的情况下,保持提交历史的线性。

  • 重新排列提交历史:rebase 操作会将 feature 分支的提交放置在 master 分支的最新提交之后,生成一个线性、干净的历史,没有额外的合并提交。提交的顺序可以发生变化。
  • 形成线性历史:rebase 后的历史更加简洁、线性。合并时不会产生额外的 merge commit,最终的历史看起来像是所有的提交都是在同一个分支上完成的,没有分叉点。

分支开发流程

开发分支 → 主分支:
开发功能:

git checkout -b 开发分支名

合并到主分支:

git merge develop

注意的点

  • 在开发分支开发完成,把修改同步到线上 然后切换到主分支,然后pull
  • 然后切换到开发分支,合并主分支到开发分支,然后push,这样你的分支就会保留你的修改并且和主分支同步
  • 然后切换到主分支,合并开发分支,然后push,这样主分支就会添加你的开发分支修改内容
  • 这样可以最小减少冲突,还能让你的分支和主分支同步

http://www.ppmy.cn/server/102079.html

相关文章

cAdvisor+prometheus+grafana搭建监控页面并嵌入自定义页面中

三者关系 一般公司会有很多docker主机,那么就需要对docker进行监控了,docker监控可以采用docker stats配合shell命令来取值做监控,但是无法传递给prometheus进行采集,zabbix监控docker又比较麻烦,因此就有了谷歌的cad…

Mariadb数据库本机无密码登录的问题解决

Mariadb数据库本机无密码登录的问题解决 安装了mariadb后,发现Mariadb本机无密码才能登录 百度了很多文章,发现很多人是因为root的plugin设置的值不正确导致的,unix_socket可以不需要密码,mysql_native_password 是正常的。 解…

ubuntu22.04不生成core文件

一、检查服务器的core文件是否打开 ulimit -a //查看时候打开core 如果core file size 是0就是关闭的!服务一般都是关闭的!将他打开即可! ulimit -c size//设置core file的大小,自定义 此时打开就可以生成了core文件了&#xff…

USER ERROR: “SQL Error: BIGINT UNSIGNED value is out of range in

1. 数据库锁 悲观锁(Pessimistic Locking) 行锁:在 SQL 语句中使用 SELECT ... FOR UPDATE 来锁定选定的行,直到当前事务结束。这可以防止其他事务修改这些行。表锁:虽然不太常用,但在某些情况下&#xf…

FFmpeg源码:avio_tell函数分析

AVIOContext结构体和其相关的函数分析: FFmpeg源码:avio_r8、avio_rl16、avio_rl24、avio_rl32、avio_rl64函数分析 FFmpeg源码:avio_tell函数分析 一、avio_tell函数的定义 avio_tell函数定义在FFmpeg源码(本文演示用的FFmpeg…

【数据结构详解】——归并排序(动图详解)

目录 🕒 1. 归并排序🕘 1.1 递归实现🕘 1.2 非递归实现 🕒 1. 归并排序 💡 算法思想:归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法的一个非常典型的应用。将已有序的子…

UE5.4 用自带OpenCV4.55读取png、MP4、摄像头并在ui中显示的方法

创建c项目,项目build.cs中开启模块: // Copyright Epic Games, Inc. All Rights Reserved.using UnrealBuildTool;public class OpencvT : ModuleRules {public OpencvT(ReadOnlyTargetRules Target) : base(Target){PCHUsage PCHUsageMode.UseExplici…

【学习总结】JVM篇

JVM JVM基础知识 主力机型 HotSpot VM HotSpot虚拟机时OpenJDK和OracleJDK中默认的Java虚拟机。它最初并非由Sun公司所开发,而是由一家名为“Longview Technologies”的小公司设计。Sun公司注意到这款虚拟机在即时编译等多个方面有着优秀的理念和实际成果&#…

golang gin框架中创建自定义中间件的2种方式总结 - func(*gin.Context)方式和闭包函数方式定义gin中间件

在gin框架中,我们可以通过2种方式创建自定义中间件: 1. 直接定义一个类型为 func(*gin.Context)的函数或者方法 这种方式是我们常用的方式,也就是定义一个参数为*gin.Context的函数或者方法。定义的方法就是创建一个 参数类型为 gin.Handler…

xiaomi pad 6PRO 小米平板6 pro hyperOS降级 澎湃os 降级MIUI 14 教程 免解锁BL 降级,168小时解锁绑定

小米平板 6 Pro 机型代号 :liuqin 降级MIUI 14 小米澎湃 OS 正式版 澎湃OS安卓发布日期卡刷包线刷包OS1.0.7.0.UMYCNXM14.02024-07-13miui_LIUQIN_OS1.0.7.0.UMYCNXM_d618a5c980_14.0.zipliuqin_images_OS1.0.7.0.UMYCNXM_20240705.0000.00_14.0_cn_8cbf5920be.…

【学习笔记】Day 16-17

一、进度概述 1、ddnet_main 相关代码学习(预计 3-4 天) 二、详情 1、顶层结构 关于代码顶层结构的一些思考和总结,其中下图为师兄代码的文件结构 总结: 对于一个优秀的代码,其文件结构一定也是清晰的&#…

HarmonyOS Developer之五星好评

rating rating为评分条组件&#xff0c;用来实现用户使用感受的衡量标准条(如&#xff1a;五星好评) 在pages/index目录下的hml文件中创建一个rating组件: HTML <!-- xxx.hml --> <div class"container"><rating></rating> </div>…

类和对象(下)(1)

类和对象&#xff08;下&#xff09; 再探构造函数 我们之前在实现构造函数的时候&#xff0c;初始化成员变量使用的方式都是在函数体内进行赋值&#xff0c;其实构造函数初始化成员变量还有一种方式&#xff1a;初始化列表。 初始化列表不只是为了写得方便&#xff0c;还能解…

【Kubernetes】k8s集群图形化管理工具之rancher

目录 一.Rancher概述 1.Rancher简介 2.Rancher与k8s的关系及区别 3.Rancher具有的优势 二.Rancher的安装部署 1.实验准备 2.安装 rancher 3.rancher的浏览器使用 一.Rancher概述 1.Rancher简介 Rancher 是一个开源的企业级多集群 Kubernetes 管理平台&#xff0c;实…

Nginx与Tomcat的区别

Nginx与Tomcat的区别 —— 经验笔记 引言 在现代Web开发中&#xff0c;选择合适的服务器软件对于构建高性能、可靠的应用程序至关重要。Nginx 和 Tomcat 是两种常见的服务器软件&#xff0c;尽管它们都可以被归类为Web服务器&#xff0c;但它们的设计目标和应用场景有着本质的…

WordPress网站速度优化

提升网站速度对用户体验和搜索引擎排名至关重要。无论你是新手博主&#xff0c;还是经验丰富的网站开发人员&#xff0c;要想优化WordPress网站&#xff0c;需要长时间的努力和坚持。以下是按入门、中级和专家级别介绍的12个实用方法&#xff0c;帮助你提升WordPress网站的整体…

zigbee笔记:十、ZStack(2.3.0-1.4.0)的OSAL使用分析

zigbee笔记&#xff1a;九中&#xff0c;我们已经学会了利用模板&#xff0c;定制自己的个性开发工程&#xff0c;本文为协议栈&#xff08;ZStack-CC2530-2.3.0-1.4.0&#xff09;代码使用分析笔记&#xff0c;来进一步掌握协议栈的使用。 一、协议栈使用知识点 1、协调器、路…

fetch跨域请求数据的前端设置和后端php的header设置

跨源请求&#xff0c;也称为CORS&#xff08;Cross-Origin Resource Sharing&#xff09;请求&#xff0c;是Web开发中常见的一种需求&#xff0c;允许一个网页的JavaScript代码向与该网页不同源的服务器发出HTTP请求。以下是使用JavaScript中的fetch函数进行跨源请求的一个基本…

【51单片机】让AI识别电路图,帮你进行编码(以51单片机为例)

让AI识别电路图,帮你进行编码&#xff08;以51单片机为例&#xff09; ​ 这里使用的AI大模型使用的是 Copilot。&#xff08;两个前提&#xff1a;1. 科学上网、2. 有微软账号&#xff09; 今天测试了一下Copilot识别图片的能力&#xff0c;能力还是可圈可点的。 首先准备一…

C语言日常练习 Day17

目录 一、找出一个二维数组的鞍点 二、有一篇文章&#xff0c;共有3行文字&#xff0c;每行有80个字符。要求分别统计出其中的英文大写字母、小写字母、数字、空格以及其他字符的个数 三、有一行电文&#xff0c;已按下面规律编译成密码&#xff1a;A->Z,a->z,B->Y,…