自动化学习-使用git进行版本管理
目录
一、为什么要学习git
二、git是什么
三、git如何使用
1、git的下载安装和配置
2、git常用的命令
3、gitee远程仓库的使用
(1)注册
(2)创建仓库
(3)配置公钥(建立电脑和gitee的连接)
(4)连接远程仓库
(5)将本地代码提交到远程仓库
(6)将远程仓库代码克隆到本地
4、在pycharm中使用git
(1)配置git路径
(2)初始化本地仓库
(3)提交代码
(4)绑定远程仓库
(5)查看提交记录
(6)查看分支
(7)git操作面板
四、学习资料
一、为什么要学习git
最近在学习自动化过程中写了好几个版本的自动化测试脚本,就是想着说可以对比一下看看不同方式来写会有什么区别,但是刚开始用的是不同的文件和文件夹来管理,阅读起来很不方便,后面突然想到开发在写代码的时候肯定也要进行版本管理,于是就找到了git这样一个东西,了解之后发现这玩意确实很方便,不仅适合多个版本的代码管理,还适合多人协作,下面一起来学习一下吧:
二、git是什么
git简单来说就是一个代码管理工具,它可以用来进行版本控制,多人协作以及分支管理,也叫做分布式版本控制系统。在实际工作中开发人员使用git的流程如下图所示:
第一步:从远程仓库中克隆(clone)代码到本地仓库;
第二步:从本地仓库中检出(git checkout)一个分支进行修订;
第三步:将代码提交(git add)到暂存区;
第四步:将代码提交(git commit)到本地仓库;
第五步:将远程库代码拉(git pull)到本地仓库并自动进行合并,然后放到到工作区,确保本地仓库有远程仓库的所有代码
第六步:修改完成后,将代码推送(git push)到远程仓库
三、git如何使用
1、git的下载安装和配置
git作为一个分布式版本控制系统,使用前肯定是要先进行下载安装,安装也比较简单,打开官网地址,下载好之后直接傻瓜一键式安装即可。
git下载地址:Git - 下载软件包
git安装教程(官方):Git - 安装 Git
git安装好后需要配置使用者的用户名和邮箱,这个提交代码所需要的必备信息,所以需要配置一下全局变量,这样以后提交的时候就比较方便。配置方法如下:
在电脑桌面单击鼠标右键,选择【open git bash here】打开git命令运行窗口;输入以下命令配置用户名和邮箱:
【git config --global user.name "用户名"】关联用户
【 git config --global user.email 邮箱】关联用户邮箱
【git config --list】查看配置是否设置成功
2、git常用的命令
git其实是linux系统的创造者Linus Torvalds研发出来的,所以对于git的使用也可以用一系列的命令来进行操作,当然现在也有很多图形化界面操作更方便,但是作为程序员,学会命令的使用还是会显得专业一点,下面是git常用的一些命令:
修改配置:
【git config --global user.name "用户名"】关联用户
【 git config --global user.email 用户邮箱】关联用户邮箱
【git config --list】查看配置是否设置成功
本地仓库操作--提交:
【git init 】在当前目录初始化一个本地仓库,执行这步会生成一个.git的隐藏文件
【git add 文件名】提交指定文件到暂存区
【git add .】添加当前目录所有文件到暂存区
【git commit -m "提交内容说明"】提交代码到本地仓库(提交内容说明必须要写)
本地仓库操作--查看:
【git log】查看代码提交记录
【git reflog】查看所有的提交记录,包括被回退的版本
【git status】查看当前仓库中文件的状态
【git status -s】查看暂存区和工作区的文件状态
【git ls-files】查看暂存区的文件列表
【git diff】比较工作区和暂存区的版本内容差异
【git diff HEAD】比较工作区和当前版本库的内容差异
【git diff --cached】比较暂存区和当前版本库的内容差异
【git diff 分支1 分支2】比较不同分支的内容差异
【git diff HEAD~n HEAD】比较前n个版本和当前之间的差异(n不写则表示比较上一个版本和当前版本之间的差异)
本地仓库操作--回退:
【git reset --mixed 版本id】回退到某一个版本,回退之后工作区的文件保存,暂存区的文件会被删除
【git reset --hard 版本id】回退到某一个版本,回退之后工作区和暂存区的文件会被删除(慎用),删除后再次找到此版本使用此命令也能恢复
【git reset --soft 版本id】回退到某一个版本,回退之后工作区和暂存区的文件会保存
本地仓库操作--删除:
执行完删除命令之后需要执行一次提交命令才能同步到仓库
【git rm 文件名】从工作区和暂存区同时删除
【git rm --cached 文件名】从暂存区删除,保留在当前工作区
【git rm -r *】递归删除某个目录下的所有子目录和文件
本地仓库操作--分支操作:
【git branch】查看当前所处分支
【git branch 分支名】创建分支
【git branch -d/D 分支名】删除分支,不能删除当前所在分支,只能删除当前分支之外的其他分支
【git checkout 分支名】切换到指定分支
【git checkout -b 分支名】切换到不存在的分支,相当于新创建一个分支
【git merge 需要合并的分支名称】合并分支,将其他分支内容合并到master分支,先切换到master分支再执行此命令。
生成公钥:
【ssh-keygen -t rsa】生成公钥
【cat ~/.ssh/id_rsa.pub】查看公钥
【ssh -T git@gitee.com】验证是否配置成功
关联远程仓库操作:
【git remote】验证本地仓库和远程仓库连接是否成功,结果返回远程仓库名既为成功
【git remote add origin 远程仓库地址】建立本地仓库和远程仓库的连接,远程仓库地址需要从gitee中复制
【git clone 远程仓库地址 代码存放路径】克隆远程仓库代码到本地
【git pull】从远程仓库获取最新的代码并合并到本地
【git fetech 远程分支 本地分支】把远程分支更新的内容保存到本地
【git push】推送本地仓库代码到远程仓库
【git push --set-upstream origin master】推送本地代码并指定本地仓库的某个分支和远程仓库的某个分支进行关联
【git branch -vv】查看远程仓库和本地仓库关联的分支
3、gitee远程仓库的使用
(1)注册
gitee是一个国内开源的远程仓库,既可以创建私有仓库,也能创建公有仓库,并且还有许多的项目资源,大家可以注册一个账号没事可以在上面多逛一逛。
gitee网址:Gitee - 基于 Git 的代码托管和研发协作平台
(2)创建仓库
点击新建仓库,只需要设置仓库名称仓库介绍和是否开源就行,仓库路径会自动生成,其他的先不要设置,不然会影响本地代码推送。
(3)配置公钥(建立电脑和gitee的连接)
第一步:现在本地生成一个公钥,然后复制
第二步:将本地生成的公钥粘贴到gitee中
第三步:验证是否连接成功,看到successfully就算是连接成功了。
(4)连接远程仓库
第一步:复制远程仓库地址
第二步:创建连接,输入命令【git remote add origin 远程仓库地址】
第三步:验证连接是否成功,输入命令【git remote】,结果返回远程仓库名既为成功
(5)将本地代码提交到远程仓库
【 git push --set-upstream origin master】远程仓库没有东西的时候,第一次提交用这个命令,这个命令表示指定本地仓库的某个分支和远程仓库的某个分支进行关联
【git push】分支关联后就可以直接使用这个命令进行提交代码了,push代码之前先执行一下gitpull命令,看看是否存在冲突,有冲突则先解决冲突,解决后再提交
【git branch -vv】查看远程仓库和本地仓库关联的分支
(6)将远程仓库代码克隆到本地
第一步:打开gitee,打开对应项目点击克隆,复制克隆地址:
第二步:
a.首次获取远程仓库代码:输入克隆命令【git clone 项目地址】,若不指定目录则克隆文件会保存在当前目录下。
b.非首次获取远程仓库代码:
【git fetech 远程分支 本地分支】这个命令只会把远程分支更新的内容保存到本地,但是不会合并到本地的分支中
【git pull 远程分支 本地分支】这个命令将远程分支中更新的内容保存到本地并且更新本地当前所处的分支
4、在pycharm中使用git
(1)配置git路径
File-->settings-->version control(git)-->path to git executable(添加git运行路径)
(2)初始化本地仓库
VCS-->create git repository-->选择需要初始化的项目文件并点击确定
(3)提交代码
commit:提交到本地仓库
commit and push:提交到本地仓库和远程仓库(绑定远程仓库后才能使用)
注意:提交时必须要写备注,不写无法提交
(4)绑定远程仓库
Git -->push-->define remote-->输入远程仓库地址,并输入账号密码进行验证
(5)查看提交记录
(6)查看分支
(7)git操作面板
四、学习资料
本文写的比较粗糙,下面是我学习过程中看到的视频和其他资料,有疑问的大家也可以去视频中看看。
git官方的文档:Git - Git 简史
git动画演示学习
黑马程序员Git全套教程
git从入门到精通3小时带你搞定git,玩转GitHub
git与pycharm交互 + GitHub开源项目获取 | python自学_哔哩哔哩_bilibili
相关文章:

自动化学习-使用git进行版本管理
目录 一、为什么要学习git 二、git是什么 三、git如何使用 1、git的下载安装和配置 2、git常用的命令 3、gitee远程仓库的使用 (1)注册 (2)创建仓库 (3)配置公钥(建立电脑和git…...

GCC RISCV 后端 -- GCC Passes 注释
在前面文章提到,当GCC 前端完成对C源代码解析完成后,就会使用 处理过程(Passes)机制,通过一系列的处理过程,将 GENERIC IR 表示的C程序 转步转换成 目标机器的汇编语言。过程描述如下图所示: 此…...

Ollama存在安全风险的情况通报及解决方案
据清华大学网络空间测绘联合研究中心分析,开源跨平台大模型工具Ollama默认配置存在未授权访问与模型窃取等安全隐患。鉴于目前DeepSeek等大模型的研究部署和应用非常广泛,多数用户使用Ollama私有化部署且未修改默认配置,存在数据泄露、算力盗…...
IDEA Generate POJOs.groovy 踩坑小计 | 生成实体 |groovy报错
一、无法生成注释或生成的注释是null 问题可能的原因: 1.没有从表里提取注释信息,修改def calcFields(table)方法即可 def calcFields(table) {DasUtil.getColumns(table).reduce([]) { fields, col ->def spec Case.LOWER.apply(col.getDataType().…...

阿里云云监控资源告警常用模板
阿里云云监控资源告警常用模板 {"HostAvailabilityTemplate": [],"Description": "","SystemEventTemplates": [],"AlertTemplatesJson": {"kvstore_standard": [{"displayName": "Connection usa…...
Tailwind CSS 问题:npm error could not determine executable to run
问题与处理策略 问题描述 npx tailwindcss init -p在使用 Tailwind CSS 的前端项目中,执行上述指令,即初始化 Tailwind CSS 时,报如下错误 npm error could not determine executable to run# 报错npm 错误无法确定要运行的可执行文件问题…...
vue基本功
watchEffect和watch watchEffect默认 immdiate 是 true,而且自动收集依赖 watch需要手动写依赖,immdiate 默认是 false toRef和toRefs toRef: 复制 reactive 里的单个属性并转成 ref toRefs: 复制 reactive 里的所有属性并转成 ref vue3中使用vuex import { useStore } f…...

.NET10 - 预览版1新功能体验(一)
.NET 10 首个预览版已经在前两天发布,该版本在 .NET Runtime、SDK、libraries、C#、ASP.NET Core、Blazor 和 .NET MAUI 等多个方面都有重大改进和增强。其中C# 14 预览版也伴随着.NET 10预览版一起发布了,今天就和大家一起体验一下.NET 10 和 C# 14 。 …...

java下载多个网络文件并压缩成压缩包保存到本地
背景 开发票的时候远程会返回发票的url,现在客户端需要下载发票;因为一个订单可能不止一张发票,因此需要通过网络把远程的文件下载回来并压缩成压缩文件进行返回。 实现 本文的例子直接基于java.net包下面的类实现。(因为是基于…...

23种设计模式之单例模式(Singleton Pattern)【设计模式】
文章目录 一、简介二、关键点三、实现单例模式的步骤四、C#示例4.1 简单的单例模式4.2 线程安全的单例模式(双重检查锁定)4.3 静态初始化单例模式 五、单例模式优缺点5.1 优点5.2 缺点 六、适用场景七、示例的现实应用 一、简介 单例模式(Si…...

[项目]基于FreeRTOS的STM32四轴飞行器: 四.LED控制
基于FreeRTOS的STM32四轴飞行器: 四.LED控制 一.配置Com层二.编写驱动 一.配置Com层 先在Com_Config.h中定义灯位置的枚举类型: 之后定义Led的结构体: 定义飞行器状态: 在Com_Config.c中初始化四个灯: 在Com_Config.h外部声明…...
使用 dynamic-datasource-spring-boot-starter 实现多数据源动态切换
目录 在实际开发中,我们经常会遇到需要在一个项目中连接多个数据源的场景。例如,一个应用可能需要同时访问多个数据库,或者根据业务需求动态切换数据源。dynamic-datasource-spring-boot-starter 是一个基于 Spring Boot 的轻量级多数据源动态…...
springboot中注解有什么用
注解(Annotation)是 Java 的一个重要特性,我用几个具体例子来解释: 1、标记功能 Service // 告诉Spring这是一个服务类 public class UserService { }Data // 告诉Lombok自动生成getter/setter public class User {private…...

Spring Boot 缓存最佳实践:从基础到生产的完整指南
Spring Boot 缓存最佳实践:从基础到生产的完整指南 引言 在现代分布式系统中,缓存是提升系统性能的银弹。Spring Boot 通过 spring-boot-starter-cache 模块提供了开箱即用的缓存抽象,但如何根据业务需求实现灵活、可靠的缓存方案…...

Linux网络相关内容与端口
网络相关命令 ping命令测试连接状态 wget命令:非交互式文件下载器,可以在命令行内下载网络文件 使用ctrlc可以中止下载 curl命令:可以发送http网络请求,用于文件下载、获取信息等 其实和浏览器打开网站一样,cu…...
Python Flask框架学习汇编
1、入门级: 《Python Flask Web 框架入门》 这篇博文条理清晰,由简入繁,案例丰富,分十五节详细讲解了Flask框架,强烈推荐! 《python的简单web框架flask【附例子】》 讲解的特别清楚,每一步都…...
GitHub CI流水线
GitHub CI流水线 build.yml 路径:.github/workflows/build.yml name: Docker Image CIon:workflow_dispatch:jobs:build:runs-on: ubuntu-lateststeps:- uses: actions/checkoutv4- name: Set up JDK 8uses: actions/setup-javav4with:java-version: 8distributi…...

机器视觉运动控制一体机在天地盖同步跟随贴合解决方案
市场应用背景 纸盒天地盖是一种包装形式,广泛应用于消费电子、食品礼盒、奢侈品及化妆品等领域。其采用高强度纸板,经过预组装处理,结构坚固稳定,能有效保护产品并提升品牌形象。随着包装行业快速发展,市场对天地盖的…...

贪心算法一
> 作者:დ旧言~ > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:了解什么是贪心算法,并且掌握贪心算法。 > 毒鸡汤:有些事情,总是不明白,所以我不会坚持。早安! >…...

什么是全栈?
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点下班 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 📃文章前言 🔷文章均为学习工…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...

IDEA运行Tomcat出现乱码问题解决汇总
最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...

MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

day36-多路IO复用
一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...

MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 🍺 最新版brew安装慢到怀疑人生?别怕,教你轻松起飞! 最近Homebrew更新至最新版,每次执行 brew 命令时都会自动从官方地址 https://formulae.…...

stm32wle5 lpuart DMA数据不接收
配置波特率9600时,需要使用外部低速晶振...
es6+和css3新增的特性有哪些
一:ECMAScript 新特性(ES6) ES6 (2015) - 革命性更新 1,记住的方法,从一个方法里面用到了哪些技术 1,let /const块级作用域声明2,**默认参数**:函数参数可以设置默认值。3&#x…...

Python训练营-Day26-函数专题1:函数定义与参数
题目1:计算圆的面积 任务: 编写一个名为 calculate_circle_area 的函数,该函数接收圆的半径 radius 作为参数,并返回圆的面积。圆的面积 π * radius (可以使用 math.pi 作为 π 的值)要求:函数接收一个位置参数 radi…...