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

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

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

贪心算法一

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

什么是全栈?

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

Typora与AI结合:使用万象熔炉·丹青幻境为Markdown文档自动配图

Typora与AI结合:使用万象熔炉丹青幻境为Markdown文档自动配图 不知道你有没有过这样的体验:在Typora里写完一篇技术博客或项目文档,内容详实,逻辑清晰,但通篇下来全是文字,总觉得少了点什么。想配几张图吧…...

解锁3大自由:5分钟掌握的音乐格式解放工具

解锁3大自由:5分钟掌握的音乐格式解放工具 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 在数字音乐时代,我们却常常面临这样的困境:下载的音乐被限制在特定播放器中,就像拥有一本精美…...

Axure 9.0 原生组件:绘制折线图

引言在原型设计中,数据可视化是传递核心信息的关键手段,而折线图凭借 “清晰展示数据趋势” 的优势,广泛应用于销售波动、用户增长、指标变化等场景。Axure 9.0 作为主流原型工具,虽未内置现成折线图组件,但通过「形状…...

3步搞定大麦网自动抢票:告别手速不够的时代

3步搞定大麦网自动抢票:告别手速不够的时代 【免费下载链接】Automatic_ticket_purchase 大麦网抢票脚本 项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase 还在为抢不到心仪演唱会门票而烦恼吗?当周杰伦、五月天等热…...

SPM12实战:从nii文件元数据解析到精准slice timing配置

1. 理解nii文件与slice timing的基础概念 当你第一次拿到fMRI的nii格式数据时,可能会被这个黑箱般的文件格式搞得一头雾水。nii文件就像是把整个大脑扫描过程打包成一个数字包裹,里面不仅包含三维的脑部图像数据,还隐藏着关键的扫描参数。我在…...

Python MCP服务部署卡在step3?揭秘92%开发者忽略的config.toml权限校验机制(配置失效终极诊断指南)

第一章:Python MCP服务部署卡在step3的典型现象与问题定位当执行 Python MCP(Model Control Platform)服务自动化部署脚本时,step3(即服务容器化构建与镜像推送阶段)常出现长时间无响应、日志停滞于 Buildi…...

革新性Koikatu体验增强工具:KK-HF_Patch效率提升指南

革新性Koikatu体验增强工具:KK-HF_Patch效率提升指南 【免费下载链接】KK-HF_Patch Automatically translate, uncensor and update Koikatu! and Koikatsu Party! 项目地址: https://gitcode.com/gh_mirrors/kk/KK-HF_Patch 你是否曾在《Koikatu》游戏中遇到…...

PHP PhantomJS 安装与使用指南

PHP PhantomJS 安装与使用指南 【免费下载链接】php-phantomjs Execute PhantomJS commands through PHP 项目地址: https://gitcode.com/gh_mirrors/ph/php-phantomjs 1. 项目目录结构及介绍 在安装jonnnnyw/php-phantomjs库后,您将得到一个基本的目录结构…...

高效一键构建:DoL-Lyra整合包的智能自动化构建系统解析

高效一键构建:DoL-Lyra整合包的智能自动化构建系统解析 【免费下载链接】DOL-CHS-MODS Degrees of Lewdity 整合 项目地址: https://gitcode.com/gh_mirrors/do/DOL-CHS-MODS 还在为Degrees of Lewdity游戏的美化整合包配置而烦恼吗?您是否曾因手…...

如何为华硕笔记本安装轻量级性能控制工具:G-Helper完整指南

如何为华硕笔记本安装轻量级性能控制工具:G-Helper完整指南 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Stri…...