当前位置: 首页 > news >正文

自动化学习-使用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​ 模块提供了开箱即用的缓存抽象,但如何根据业务需求实现灵活、可靠的缓存方案&#xf…...

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…...

机器视觉运动控制一体机在天地盖同步跟随贴合解决方案

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

贪心算法一

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

什么是全栈?

🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点下班 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 📃文章前言 🔷文章均为学习工…...

后端-Java虚拟机

Java虚拟机 Java虚拟机的组成 Java虚拟机的组成由类加载器ClassLoader、运行时数据区域(JVM管理的内存)和执行引擎(即时遍历器、解释器垃圾回收器) 类加载器加载class字节码文件中的内容到内存运行时数据区域负责管理jvm使用到…...

Android 低功率蓝牙之BluetoothGattCallback回调方法详解

BluetoothGattCallback 是 Android 中用于处理蓝牙低功耗(BLE)设备通信的核心回调类。它负责处理与 BLE 设备的连接、服务发现、数据读写等操作的结果。以下是对 BluetoothGattCallback 的详细解析: 1. onConnectionStateChange 触发时机&am…...

K8S学习之基础十四:k8s中Deployment控制器概述

Deployment控制器概述: Deployment控制器是k8s中最常用的资源对象,为Replicaset和Pod创建提供了一种声明式的定义方法,在Deployment对象中描述一个期望的状态,Deployment控制器就会按照一定的控制速率把实际状态改成期望状态&…...

Vue3快速入门笔记

目录 1.Vue3简介1.1.性能提升1.2.源码升级1.3.拥抱TypeScript1.4.新特性 2.创建Vue3工程2.1.基于 vue-cli 创建2.2. 基于 vite 创建(推荐)2.3.代码运行 3.Vue3核心语法3.1.OptionsAPI(选项式API) 与 CompositionAPI(组合式API)3.2.setup3.3.ref 创建&…...

【LeetCode104】二叉树的最大深度

题目 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 思路与算法 树的最大深度可以通过其左子树和右子树的最大深度来定义。对于给定节点,最大深度为 1(当前节点&#xff0…...

SQLAlchemy系列教程:理解SQLAlchemy元数据

SQLAlchemy是Python开发人员的强大ORM工具。SQLAlchemy中的元数据是对象-关系映射配置的集合,允许开发人员无缝地定义和使用数据库模式。 使用元数据 SQLAlchemy中的元数据充当各种数据库描述符(如表、列和索引)的容器。这使开发人员能够通…...

Apache Shiro 反序列化漏洞全解析(Shiro-550 Shiro-721)

一、前言 Apache Shiro 是一个强大的 Java 安全框架,广泛用于用户认证、授权、加密和会话管理。然而,由于 Shiro 在某些版本中存在反序列化漏洞,攻击者可以通过特定手法实现远程代码执行(RCE),进而获取服务…...

计算机毕业设计Python+DeepSeek-R1大模型空气质量预测分析(源码+文档+PPT+讲解)

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...

实例详细演示在Pytest中如何忽略警告

关注开源优测不迷路 大数据测试过程、策略及挑战 测试框架原理,构建成功的基石 在自动化测试工作之前,你应该知道的10条建议 在自动化测试中,重要的不是工具 当你尝试运行Pytest代码时,那些不相关的警告突然弹出,是不是…...

03 HarmonyOS Next仪表盘案例详解(二):进阶篇

温馨提示:本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦! 文章目录 前言1. 响应式设计1.1 屏幕适配1.2 弹性布局 2. 数据展示与交互2.1 数据卡片渲染2.2 图表区域 3. 事件处理机制3.1 点击事件处理3.2 手势…...