Linux下git安装及使用

2023-09-21 15:11:19

Linux下Git使用

1. git的安装

sudo apt install git

安装完,使用git --version查看git版本

2. 配置git

git config --global user.name "Your Name“	##配置用户
git config --global user.email email@example.com	##配置邮箱
 git config --global --list			##查看配置信息
## --global 全局配置,所有仓库生效,不加就只对当前用户有效
## --system 系统配置,对所有用户生效

3. 新建版本库

 git init

4. 工作区域与文件状态

image-20230920204530239

image-20230920204638439

5. 添加和提交文件

git init		##创建仓库
git status		##查看仓库的状态
git add			##添加到暂存库
git commit 		##提交
git rm --cached <file>...		##将文件从暂存区中去除
git log			##查看提交记录
git ls-files	##查看暂存区的文件
git commit -a -m " " #实现添加和提交两个步骤

3. 回退版本

git reset --soft
git reset --hard
git reset --mixed	

image-20230921085607903

git reset HEAD^		##默认为mixed,回退一个版本
HEAD 表示当前版本
HEAD^ 上一个版本
HEAD^^ 上上一个版本
HEAD^^^ 上上上一个版本
HEAD~0 表示当前版本
HEAD~1 上一个版本
HEAD^2 上上一个版本
HEAD^3 上上上一个版本
执行 git reset HEAD 以取消之前 git add 添加,但不希望包含在下一提交快照中的缓存

误操作之后

git reflog		##回溯日志
git reset --hard 版本号	##回退

6. 查看差异

image-20230921091532989

git diff				#默认比较工作区和暂存区之间的差异
git diff HEAD			#比较工作区和版本库之间的差异
git diff --cached		#比较暂存区和版本库之间的区别
git diff 版本号	版本号	#比较两个版本之间的差异
git diff HEAD~ HEAD		#如回退版本

image-20230921092511736

7. 删除文件

方法1:先删除本地文件,再提交

rm -rf 3.txt	##删除本地中的文件
git add .		##删除暂存区中的文件
git commit -m 'deleted 3.txt'	##删除工作区文件

方法2

git rm 2.txt	##删除本地和暂存区中文件
git commit -m 'deleted 2.txt'	##删除工作区文件

image-20230921093523261

8. 忽略文件

image-20230921093644360

 echo "*.log" > .gitignore		##表示忽略所有日志文件

image-20230921094538072

9. 远程仓库github

注册github账号,创建仓库

10. ssh配置和克隆仓库

创建ssh密钥

cd ~
cd .ssh		#如果显示文件不存在,就之间执行以下命令
ssh-keygen -t rsa -b 4096 -C "xxx@email.com"	#直接enter,如果是第二次执行,记得更改文件名,不然会覆盖之前的id_rsa文件,且不可逆

image-20230921101312117

执行之前的命令会生成以下两个文件,有.pub的是公钥文件,没有的是私钥文件,复制公钥文件到github的Settings里的ssh配置

如果是第一次配置就配置完了,如果是第二次,更改了文件名的,就需要新建一个config文件,内容为

image-20230921101639858

意思是:当我们在访问github.com这个网站的时候。使用的是test这个文件里的密钥

 git clone git@github.com:xxx.git		##克隆新建的远程仓库

image-20230921102254407

git push	##将本地文件推送到远程仓库

11. 关联本地仓库和远程仓库

  1. 本地无仓库
echo "# fist-repo" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin git@github.com:xxx.git
git push -u origin main
  1. 本地已经有仓库
git remote add origin git@github.com:xxx.git		##添加一个远程仓库
git branch -M main									##指定分支的名称为main
git push -u origin main								##把本地的main分支与远程的orgin main分支关联
git remote -v		##查看本地仓库对应的远程仓库别名

image-20230921103436235

image-20230921103522078

12. 分支

git branch			#查看分支
git branch	dev		#新建分支dev
git checkout dev	#切换到分支dev(有风险,有时会用来恢复文件)
git switch main		#切换到分支main
git merge dev		#将要被合并的分支(dev)合并到当前分支(main)
git log --graph --oneline --decorate --all	##查看分支情况
git branch -d dev	#删除分支(已经合并)
git branch -D dev	#删除分支(未合并,强行删除)

image-20230921140159925

13. 回退和rebase

image-20230921140826350

image-20230921141221770

image-20230921141308973

14. 分支管理和工作流模型

  1. git flow模型

img

img

img

  1. github flow模型

image-20230921141728150

image-20230921141750346

更多推荐

C++ 类(1)

你知道吗,C++类是编程世界中的一种强大工具,它可以帮助我们更好地组织和管理代码。接下来,我将为你呈现一篇近万字的C++类的教程,希望能帮助你熟悉这个概念。首先,让我们从C++类的定义开始。类是一个模板,它描述了一种具有相同属性和行为的数据类型。听起来很复杂吗?别担心,我来给你举个例子。假设我们要创建一个名为"Car"

PostgreSQL 技术内幕(十)WAL log 模块基本原理

事务日志是数据库的重要组成部分,记录了数据库系统中所有更改和操作的历史信息。WALlog(WriteAheadLogging)也被称为xlog,是事务日志的一种,也是关系数据库系统中用于保证数据一致性和事务完整性的一系列技术,在数据库恢复、高可用、流复制、逻辑复制等模块中扮演着极其重要的角色。在这次直播中,我们为大家介

【8B10B编解码及verilog(xilinx example)解析】

8B10B编解码及verilog(xilinxexample)解析编码查表算法解码代码解析极性控制字K码编码8b/10b编码将串行的数据以8bit为一个单位进行编码处理得到一个10bit的数据,具体怎么操作呢,假设原始8位数据从高到低用HGFEDCBA表示,将8位数据分成高3位HGF和低5位EDCBA两个子组。经过5B

成都直播基地火热招商中,天府蜂巢成都直播基地招商政策汇总

随着直播产业的发展,四川天府新区也在逐步形成成熟的直播产业链。近日,记者采访到成都天府蜂巢直播产业基地即将竣工,正式进入运营阶段,作为成都科学城兴隆湖高新技术服务产业园的主打新一代成都直播基地,正积极招商中!引领大规模的平台聚合发展的树莓集团与专注城市资产运营的上市公司德商产投携手打造产业+直播赋能平台——成都天府蜂巢

MyBatis初级

文章目录一、mybatis1、概念2、JDBC缺点2.1、之前jdbc操作2.2、原始jdbc操作的分析3、mybatis的使用3.1、导入maven依赖3.2、新建表3.3、实体类3.4、编写mybatis的配置文件3.5、编写接口和映射文件3.6、编写测试类3.7、注意事项4、代理方式开发5、mybatis和spr

03MyBatis-Plus中的常用注解

常用注解@TableNameMyBatis-Plus根据BaseMapper中指定的泛型(实体类型名)确定数据库中操作的表,如果根据实体类型名找不到数据库中对应的表则会报表不存在异常//向表中插入一条数据@TestpublicvoidtestInsert(){Useruser=newUser(null,"张三",23,

华为云云耀云服务器L实例评测 | Linux系统宝塔运维部署H5游戏

文章目录前言一、云服务器相对传统服务器有什么优势1.1、可伸缩性(Scalability)1.2、灵活性(Flexibility)1.3、高可用性(HighAvailability)1.4、备份和恢复(BackupandRecovery)1.5、成本效益(Cost-Effectiveness)1.6、全球性(Globa

SpringMvc常用注解

目录一、@RequestParam二、@RequestHeader,@CookieValue三、@ModelAttribute(1)作用1(2)作用2四、@ResponseBody五、@RestController六、@RequestBody一、@RequestParam@RequestParam可以在控制器方法中获取

Java线程池ExecutorService和Executors应用(Spring Boot微服务)

记录:476场景:在SpringBoot微服务中使用ExecutorService管理Java线程池。使用Executors创建线程池。使用Runnable接口实现类提交线程任务到线程池执行。版本:JDK1.8,SpringBoot2.6.3。1.线程和线程池基础JDK自带线程和线程池包位置:java.util.con

嵌入的是PWM

PWM简介在嵌入式系统中,PWM(脉冲宽度调制)是一种常用的技术,用于控制和生成脉冲信号,通常用于控制电机、LED亮度、音频输出等。针对STM32微控制器,它们通常具有内置的PWM控制器模块,使PWM生成相对容易。PWM是一种用于控制电子设备的技术,通过调整信号的脉冲宽度和周期,可以模拟出不同的电压或功率级别。频率、占

JVM 虚拟机 ---->垃圾收集算法

文章目录JVM垃圾收集器一、判断对象是否存活1、引用计数算法(1)基本思路(2)存在的问题2、可达性分析算法(1)基本思路二、Java中的四种引用方式1、强引用(StrongReference)(1)弱化方式1(2)弱化方式22、软引用(SoftReference)3、弱引用(WeakReference)4、虚引用(P

热文推荐