当前位置: 首页 > 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…...

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

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

贪心算法一

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

什么是全栈?

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

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...

day52 ResNet18 CBAM

在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...

GitHub 趋势日报 (2025年06月08日)

📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具

第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP

编辑-虚拟网络编辑器-更改设置 选择桥接模式,然后找到相应的网卡(可以查看自己本机的网络连接) windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置,选择刚才配置的桥接模式 静态ip设置: 我用的ubuntu24桌…...

[ACTF2020 新生赛]Include 1(php://filter伪协议)

题目 做法 启动靶机,点进去 点进去 查看URL,有 ?fileflag.php说明存在文件包含,原理是php://filter 协议 当它与包含函数结合时,php://filter流会被当作php文件执行。 用php://filter加编码,能让PHP把文件内容…...