git笔记 - 常用记录
第1阶段 - Git简介
- 什么是Git及其重要性?
- 基本的Git概念和术语
- 仓库(Repository):也称为 repo,是存储代码和版本历史的地方。它可以是本地仓库(在本地计算机上)或远程仓库(在服务器或代码托管平台上)。
- 分支(Branch):是基于主分支(通常是 master 或 main 分支)创建的一个并行开发路径。它允许在不影响主分支的情况下进行独立开发和修改。
- 提交(Commit):表示一次代码修改的操作。提交包含了修改的文件内容和相应的提交信息(作者、日期、描述等),并形成一个唯一的标识符(哈希值)。
- 暂存区(Staging Area):也称为索引(Index),是一个中间区域,用于暂时保存将被提交的修改。在将修改提交之前,需要将其添加到暂存区。
- 远程仓库(Remote Repository):是位于网络上的代码仓库,用于与团队成员共享代码。常见的远程仓库包括 GitHub、GitLab 和 Bitbucket。
- 克隆(Clone):从远程仓库复制代码到本地计算机,创建一个本地仓库的副本。
- 拉取(Pull):从远程仓库获取最新的代码和提交,并将其合并到当前分支。
- 推送(Push):将本地仓库中的代码和提交推送到远程仓库,更新远程仓库的内容。
- 合并(Merge):将一个分支的修改合并到另一个分支,使得目标分支包含源分支的提交历史和代码更改。
- 冲突(Conflict):当两个分支对同一部分代码进行不同的修改,Git 无法自动合并它们时,会发生冲突。需要手动解决冲突后才能继续合并。
- 拉取请求(Pull Request):在协作开发中,开发人员将自己的修改请求合并到主分支或目标分支时创建的请求。其他团队成员可以审查修改并提供反馈。
- 比较(Diff):比较两个提交或分支之间的差异,显示哪些文件发生了变化以及具体的修改内容。
- 安装Git
https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git - 配置Git
- 配置用户名和邮箱
git config --global user.name "Your Name"
git config --global user.email "yourname@example.com"
git config --global credential.helper store
# 这两个命令分别设置了全局的用户名和邮箱,用于标识你在Git提交中的身份信息。
- 配置文本编辑器
git config --global core.editor "vim"
# 这个命令设置了全局的文本编辑器,用于打开Git的默认编辑器来编辑提交信息和其他文本。
- 查看配置信息
git config --list
# 这个命令可以查看当前Git的配置信息,包括用户名、邮箱、编辑器等设置。
- 配置远程仓库的地址
git remote add origin <remote-url>
# 这个命令将一个远程仓库的地址(<remote-url>)与本地仓库关联起来,使得可以通过origin这个名称来引用远程仓库。
- Git基本工作流程(添加、提交、推送、拉取)
- 添加(Add):使用git add命令将修改的文件添加到暂存区(Staging Area)。
#添加单个文件
git add file1.txt
#添加整个目录
git add directory/
- 提交(Commit):使用git commit命令将暂存区中的修改提交到本地仓库。每次提交都应该附带一条有意义的提交信息,用于描述修改的内容和目的。
git commit -m "Commit message"
- 推送(Push):使用git push命令将本地仓库中的修改推送到远程仓库,更新远程仓库的内容。推送操作通常用于与团队成员共享代码或将修改应用于远程仓库。
git push origin branch-name
#其中,origin是远程仓库的名称,branch-name是要推送的分支名称。
- 拉取(Pull):使用git pull命令从远程仓库获取最新的代码和提交,并将其合并到当前分支。拉取操作用于更新本地仓库,以保持与远程仓库同步。
git pull origin branch-name
第2阶段 - Git分支
- 创建新分支
# 创建新分支
git branch <branch-name>
# 检出并创建新分支
git checkout -b <branch-name>
- 分支之间的切换
# 检出分支
git checkout <branch-name>
- 合并分支
git checkout master
git merge feature
- 解决冲突的方法
#切换到目标分支
git checkout master#合并源分支到目标分支
git merge feature#发生冲突,打开冲突文件进行编辑
#编辑文件,移除冲突标记并保留正确的代码
#将其中的冲突标记(<<<<<<<、=======、>>>>>>>)替换为正确的代码#添加解决冲突后的文件
git add <conflict-file>#提交解决冲突的修改
git commit
第3阶段 - Git协作
- 使用Git进行协作
# 切换到目标分支
git checkout <branch-name># 合并commit
git rebase -i HEAD~<number-of-commits>
- Git远程存储库
# 添加远程仓库
git remote add <remote-name> <remote-url>
- 如何协作并与其他人共享Git存储库
- Pull请求和代码审查
- Git工作流程 - GitFlow/分支模型
https://blog.51cto.com/lansonli/5284139 - GitLab、BitBucket和其他Git托管平台
第4阶段 - 高级Git主题
- 使用Git rebase重写Git历史
- Git子模块
- Git钩子
- Git存储
- 恢复丢失的提交
- 调试Git问题
第5阶段 - 实践中的Git使用
- 实际场景下Git的应用实例
- 使用Git部署应用程序
- 使用Git钩子自动化Git任务
- 高级的Git工作流程和分支策略
- 在大型项目中实现Git
- Git协作和管理的最佳实践````````
相关文章:
git笔记 - 常用记录
第1阶段 - Git简介 什么是Git及其重要性?基本的Git概念和术语 仓库(Repository):也称为 repo,是存储代码和版本历史的地方。它可以是本地仓库(在本地计算机上)或远程仓库(在服务器…...

无纸化办公小程序数据交互、wxs的使用
前言 很多同志们再写小程序的过程中,不知道该怎么发起HTTP请求到后端,在Web环境中发起HTTPS请求是很常见的,但是微信小程序是腾讯内部的产品,不能直接打开一个外部的链接。例如,在微信小程序中不能直接打开www.taobao…...

Python之哈希表-哈希表原理
Python之哈希表-哈希表原理 集合Set 集合,简称集。由任意个元素构成的集体。高级语言都实现了这个非常重要的数据结构类型。Python中,它是可变的、无序的、不重复的元素的集合 初始化 set() -> new empty set objectset(iterable) -> new set …...

sql server2014如何添加多个实例 | 以及如何删除多个实例中的单个实例
标题sql server2014如何添加多个实例 前提(已安装sql server2014 且已有默认实例MSSQLSERVER) 添加新的实例 其实就是根据安装步骤再安装一次(区别在过程中说明) 双击安装 选择“全新独立安装或添加现有功能” 然后下一步下一…...
C++ 智能指针常用总结
C 智能指针常用总结 文章目录 C 智能指针常用总结1. 写在对前面2. why 智能指针3. what 智能指针3.1 unique_ptr3.2 shared_ptr3.3 weak_ptr 3. how 指针指针3.1 unique_ptr3.1.1 创建3.1.2 成员函数 3.2 shared_ptr3.2.1创建3.2.2 成员对象 3.3 weak_ptr 4. 碎碎念5.参考资料 …...
OracleRAC 安装配置过程中的问题
OS RHAS 3.2 DB 9204 在RAC的安装配置过程中,虽然是严格仔细按照文档来实施,但还是出现不少问题,现整理出来。 现象一 : 在节点一安装数据库的时候出现以下错误 [oraclerac1 dbs]$ sqlplus "/nolog"SQL*Plus: Relea…...

基于战争策略优化的BP神经网络(分类应用) - 附代码
基于战争策略优化的BP神经网络(分类应用) - 附代码 文章目录 基于战争策略优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.战争策略优化BP神经网络3.1 BP神经网络参数设置3.2 战争策略算法应用 4.测试结果…...

K8s 概念及组件
K8s 的全称为Kubernetes,是一种开源的容器编排平台,用于自动化部署以及扩展和管理容器化的应用程序,它提供了一种容器编排和管理的方式,可以帮助开发人员更轻松的管理容器化的应用程序,并且提供了一种跨多个主机的自动…...

【已解决】java的gradle项目报错org.gradle .api.plugins .MavenPlugin
我的java的gradle项目经常报错org.gradle .api.plugins .MavenPlugin。报错这个问题是因为依赖起冲突了,我在网上试了很多方法都没有效果,折让小编我很是苦恼,不过还好到最后问题还是解决了。 首先要知道你的项目所使用的gradle版本…...

计算机网络-计算机网络体系结构-网络层
目录 一、IPV4 IP数据报格式 *IP 数据报分片 *IPV4地址 分类 网络地址转换(NAT) 二、子网划分与子网掩码 *CIDR *超网 协议 ARP协议 DHCP协议 ICMP协议 三、IPV6 格式 IPV4和IPV6区别 地址表示形式 四、路由选择协议 RIP(路由信息协议) OPSF(开发最短路径优…...

60 最长有效括号
最长有效括号 题目描述题解1 DPstack题解2 stack题解3 DP题解4 左右指针 题目描述 给你一个只包含 ( 和 ) 的字符串,找出最长有效(格式正确且连续)括号子串的长度。 示例 1: 输入:s "(()" 输出࿱…...
第17章 MQ(二)
17.11 RabbitMQ如何保证消息的顺序性 难度:★★ 重点:★★★ 白话解析 其实RabbitMQ是一个先进先出的队列,只要消息进入到队列之后那肯定是顺序的,其实这道题问的点就是在消息进队列之前和出队列之后如何保证顺序性。 1、要保证消息进队列的顺序性实际只需要保证生产者只…...
AV1 视频编码标准资源
AV1 视频编码标准资源 A Progress Report: The Alliance for Open Media and the AV1 Codec Alliance for Open Media(开放媒体联盟/AV1官网) aomanalyzer AOM ANALYZER TEST CLIPS(测试视频) (Download each of the the CIF clips found there, in YUV4MPEG (y4m) format…...

pycharm远程连接miniconda完整过程,以及遇到的问题解决
问题1:no-zero exit code(126) env: ‘/home/user2/miniconda3/envs/ihan/bin/python3’: Too many levels of symbolic links Python interpreter process exited with a non-zero exit code 126 因为选择的新建导致太多软连接,先在服务器上建好虚拟环…...

leetcode:2678. 老人的数目(python3解法)
难度:简单 给你一个下标从 0 开始的字符串 details 。details 中每个元素都是一位乘客的信息,信息用长度为 15 的字符串表示,表示方式如下: 前十个字符是乘客的手机号码。接下来的一个字符是乘客的性别。接下来两个字符是乘客的年…...

【马蹄集】—— 概率论专题:第二类斯特林数
概率论专题:第二类斯特林数 目录 MT2224 矩阵乘法MT2231 越狱MT2232 找朋友MT2233 盒子与球MT2234 点餐 MT2224 矩阵乘法 难度:黄金 时间限制:5秒 占用内存:128M 题目描述 输入两个矩阵,第一个矩阵尺寸为 l…...
spring中基础核心接口总结
理解这几个接口,及其实现类就可以快速了解spring,具体的用法参考其他spring资料 1.BeanFactory最基础最核心的接口 重要的实现类有:XmlBeanFactory,以及ApplicationContext接口下的类 2.Resource接口,可以通用地访问文件资源 1)ClassPathResource:读取…...

最新Tuxera NTFS2024破解版mac读写NTFS磁盘工具
Tuxera NTFS for Mac是一款Mac系统NTFS磁盘读写软件。在系统默认状态下,MacOSX只能实现对NTFS的读取功能,Tuxera NTFS可以帮助MacOS 系统的电脑顺利实现对NTFS分区的读/写功能。Tuxera NTFS 2024完美兼容最新版本的MacOS 11 Big Sur,在M1芯片…...

【标准化封装 SOT系列 】 E SOT-89
〇、SOT-89 这个封装也比较常见,但并不易错。 一、E部分 SOT-89 参数 pin-pin 间距1.5mm body size 4.52.5 二、符合当前标准的典型举例 名称pin 数厂家 body DE矩形 (mm)SOT-894Mini-Circuits – PGA-102 — 4.39/4.62.29/2.59 上图 MiniCircuits 也称DF78…...

【建立单链表:头插法,尾插法;循环列表,带尾指针的循环链表合并(将Tb合并在Ta之后)】
文章目录 一、单链表的基本操作的实现1.建立单链表:头插法----元素插入在链表头部,也叫头插法。2.建立单链表:尾插法----元素插入在链表尾部,也叫尾插法。 二、线性表的链式表示和实现1.循环列表2.带尾指针的循环链表合并…...

网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
挑战杯推荐项目
“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 - 个性化梦境…...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...