git的基本命令操作超详细解析教程

Git基础教学

    • 1、初始化配置
    • 2、初始化仓库
    • 3、工作区域和文件状态
    • 4、添加和提交文件
    • 5、git reset 回退版本
    • 6、git diff查看差异
    • 7、删除文件git rm
    • 8、.gitignore
    • 10、分支基础
    • 应用1、本地文件提交到远程仓库

Git:一个开源的分布式版本控制系统,它可以在本地和远程仓库之间管理源代码和文档的版本。推荐有Linux基本命令的基础学习更佳,学起来不会枯燥、乏味。

1、初始化配置

Git安装网址
查看Git版本,检测是否安装成功

git --version

配置用户名和邮箱,保存用户名和密码,不用每一次都输入

git config --global user.name "Deng ZJ"
git config --global user.email Deng@gmail.com
git config --global credentia.helper store

查看配置信息

git config --global --list

结果如下
在这里插入图片描述

2、初始化仓库

创建仓库一般有两种方式
1、本地直接创建一个仓库
2、远程服务器上克隆一个存在的仓库

2-1 首先创建一个文件目录,切换文件路径

mkdir learn-git
cd learn-git

在本地文件目录learn-git中执行命令 git init,将这个目录变成 Git 仓库。系统命令窗口回显已经初始化了一个空的仓库,且路径行出现一个master分支

git init

在这里插入图片描述
输入 ls -a,即查看当前目录下的文件(包括带.的隐藏文件),-a参数:显示隐藏文件
其中.git隐藏文件里是get仓库的组成部分,不要随意增删改查
在这里插入图片描述
删除仓库,master标志也会消失

rm -rf .git

在这里插入图片描述

2-2 新建仓库,取名为my-repo的仓库,就会在my-repo文件夹下生成仓库

git init my-repo

进入my-repo仓库

cd my-repo

2-3 Github远程使用git clone命令获取仓库

git clone https://github.com/geekhall-laoyang/remote-repo.git

在这里插入图片描述

如何找到地址,如下图所示
在这里插入图片描述

若连接克隆超时,可选用SSH地址,但需要事先把本机生成的SSH公钥配置到项目中SSH配置讲解
在这里插入图片描述

2-4 修改分支名master方法
C:\Users\Administrator找到.gitconfig文件,打开后添加下面两行指令即可
在这里插入图片描述

[init]
	defaultBranch = main

3、工作区域和文件状态

工作区域分为:工作区暂存区本地仓库
工作区:本地计算机上存储项目代码的目录,所有文件都可以进行修改和编辑
暂存区(也称为索引区): Git 用于存储将要提交到本地仓库的修改的地方,看作是一个缓冲区,用于暂时存储修改。
本地仓库:是指 Git 存储项目历史记录的地方,它保存了项目的每一次提交,每个提交都包含了一个快照和提交信息。本地仓库是工作区和暂存区的最终目的地,是 Git 进行版本控制的核心
文件的三种状态已修改(modified),已暂存(staged),已提交(committed)

在这里插入图片描述在这里插入图片描述
文件状态如下图所示:
在这里插入图片描述

4、添加和提交文件

简洁版看结尾处
4-1 由于之前创建了一个仓库,现在来创建一个新的文件file1.txt,并输入hello world

echo "hello world" > file1.txt

查看文件内容

cat file1.txt

在这里插入图片描述
查看仓库的状态

git status

在这里插入图片描述

添加到暂存区

git add file1.txt

在这里插入图片描述
提交文件,只会提交暂存区的文件
再新创建一个文件file2.txt,进行提交文件时,只提交暂存区的file1.txt, ,-m参数:提交信息

 git commit -m "第一次提交"

在这里插入图片描述
4-2 通过通配符*来add添加多个文件

git add *.txt

在这里插入图片描述
4-3 添加当前文件夹的所有文件(用. 表示)到暂存区

git add .

提交文件,不带m参数就会进入vim文件编辑器(不会使用需学习Linux基础知识)界面,首行编辑第二次提交即可,vim的使用方法自行查阅
进入界面,先输入i进入编辑界面,编辑文字这是第二次提交后,按Esc退出输入模式。进入命令模式,界面输入:wq即可

git commit

在这里插入图片描述
查看提交历史记录

git log

在这里插入图片描述
在这里插入图片描述

总结

git status查看仓库的状态
git add添加到暂存区
通配符添加多个以.txt结尾的文件 git add *.txt
添加当前目录下的所有文件 git add .
git commit提交
只提交暂存区的文件,不会提交工作区的
git log查看仓库提交历史记录
添加--oneline参数可查看简洁的历史记录
git commit -a -m “输入信息”一次性完成添加和暂存

5、git reset 回退版本

三个参数 softhardmixed

工作区内容暂存区内容
git reset –soft保留保留
git reset –hard清空清空
git reset –mixed(默认参数)保留清空

创建一个名为repo的仓库,创建三个文件,并分别添加提交共三次,并使用git log --oneline查看提交简洁记录
在这里插入图片描述在这里插入图片描述

依次复制repo创建三个仓库

cp -rf repo repo-soft
cp -rf repo repo-hard
cp -rf repo repo-mixed

进入命名为soft的仓库,进行soft方式的版本回退
在这里插入图片描述
5-1 --soft 后面接回退的版本号,那么我们回退到第二次提交的版本号

 git reset --soft fe6c3eb

在这里插入图片描述
此时分别查看工作区和暂存区的情况,应当都是被保留的
在这里插入图片描述
5-2 --hard参数 HARD^ 表示回退到上一个版本

git reset --hard 版本号

或者

git reset -hard HEAD^

在这里插入图片描述
此时分别查看工作区和暂存区的情况,file3的文件应当都是被清空的
在这里插入图片描述
5-3 --mixed 默认参数可以不加
回退到上一个版本

git reset --mixed HEAD^

此时工作区file3文件保留和暂存区文件清空
在这里插入图片描述

总结

工作区内容暂存区内容
git reset –soft保留保留
git reset –hard清空清空
git reset –mixed(默认参数)保留清空

6、git diff查看差异

查看工作区、暂存区、本地仓库之间的差异,查看不同版本之间的差异或者不同分支之间。
使用上一节创建的repo仓库,并里面vim命令修改file3.txt文件内容333变为4444后,使用命令查看差异
不加参数,默认比较工作区和暂存区之间的差异

git diff

在这里插入图片描述
工作区和版本库之间的差异

git diff HEAD

暂存区和版本库之间的差异

git diff --cached

比较版本差异,只需要加入版本的ID即可

 git diff 9ff62d0 e27c26b

HEAD标志指向分支的最新节点,比较当前版本HEAD和上一个版本HEAD^(HEAD~)之间的差异

git diff HEAD^ HEAD
git diff HEAD~ HEAD

7、删除文件git rm

可以一次性删除工作区和暂存区的相同文件

git rm file2.txt

在这里插入图片描述
删除版本库的文件

git rm --cached 文件名

删除的文件需要提交到版本库中,这样版本库中的文件才能被删除

git commit -m "delete file"

8、.gitignore

需要适当的忽略一些临时缓存文件或者敏感文件添加到版本库中

克隆仓库

git clone 克隆地址

推送更新内容到远程仓库

git push

拉取更新内容到本地仓库,并进行一次合并操作

git pull

只拉去修改的内容到本地仓库

git fetch

10、分支基础

在这里插入图片描述

利用GitKraken图形化工具展现,可到git官网下载。
首先在main创建main1、2、3分别提交三次,在dev分支中创建dev1、dev2分别提交二次,然后在main中创建main4、main5提交二次。
在这里插入图片描述
查看当前仓库的所有分支

git branch

创建一个名为dev的新分支

git branch dev

切换到新的分支,两个都可

//git checkout dev
git switch dev

在这里插入图片描述

未合并,所以main分支还是原来的内容
在这里插入图片描述
在这里插入图片描述
将不同的分支进行合并到当前分支,在master分支中合并dev分支

git merge dev

在这里插入图片描述
当一个分支已经被合并到其他分支时,就可以删除已经合并的分支,没有合并的用-D参数强制删除

git branch -d dev
查看分支列表git branch
创建分支git branch 分支名
切换分支git switch 分支名
合并分支git merge 分支名
删除分支git branch -d 分支名(已合并)
git branch -D 分支名(未合并)

Rebase操作
在这里插入图片描述

以上笔记借鉴于b站视频,以备复习使用。参考:bilibili 网站——【GeekHour】一Git教程

应用1、本地文件提交到远程仓库

首先进入github官网,点击右上角New按钮,新建一个仓库。
在这里插入图片描述
这里我以将本地的coco数据集文件上传到github为例进行演示

1、创建一个本地仓库,并将文件移动到本地仓库中
在这里插入图片描述
在这里插入图片描述
2提交到本地仓库

git add .
git commit -m "first commit"
git log

在这里插入图片描述

3、上传到远程仓库

git remote add origin git@github.com:DengZhengJ/coco-repo.git
git branch -M main
git push -u origin main

显示最后一行,即上传完成。刷新github界面就可以看见上传的本地文件
在这里插入图片描述
在这里插入图片描述
4 若这个仓库并不是初始化的,而是你自己在github上克隆下来进行修改后想上传到自己的github上时,输入git remote add origin git@github.com:xxxxxx.git时,显示以下错误error: remote origin already exists,是因为一开始代码已经关联了远程仓库。
在这里插入图片描述
解决办法,删除之前关联的远程仓库即可

git remote rm origin

重新输入上面的3、提交到远程仓库的指令,即可完成

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/219190.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MVSNeRF:多视图立体视觉的快速推广辐射场重建

MVSNeRF:多视图立体视觉的快速推广辐射场重建 摘要1 引言 摘要 在2021年,作者提出了MVSNeRF,一种新的神经渲染方法,在视图合成中可以有效地重建神经辐射场。与之前对神经辐射场的研究不同,我们考虑了对密集捕获的图像…

Oracle:左连接、右连接、全外连接、(+)号详解

目录 Oracle 左连接、右连接、全外连接、()号详解 1、左外连接(LEFT OUTER JOIN/ LEFT JOIN) 2、右外连接(RIGHT OUTER JOIN/RIGHT JOIN) 3、全外连接(FULL OUTER JOIN/FULL JOIN&#xff0…

招标新时代:如何利用全国招标投标信息API获取招标投标信息

引言 随着信息技术的迅猛发展,招标投标领域也逐渐步入了数字化、智能化的新时代。全国各地政府和企事业单位纷纷采用先进的招标系统,以提高招标效率、透明度和公平性。在这个背景下,利用全国招标投标信息API成为了获取实时招标投标信息的一种…

背景特效插件:Background Effects

全管线游戏背景动态粒子特效:插件里你可以找到不同用途的各种环境背景效果。这些背景适用于主菜单和现场游戏。这些背景特效可以在任何渲染管道中工作,因为他们使用标准的粒子着色器 适用于Unity2020.3.18f1及以上版本 Unity商店链接 CSDN下载 以下是一些效果图:

【Node.js】基础梳理 6 - MongoDB

写在最前:跟着视频学习只是为了在新手期快速入门。想要学习全面、进阶的知识,需要格外注重实战和官方技术文档,文档建议作为手册使用 系列文章 【Node.js】笔记整理 1 - 基础知识【Node.js】笔记整理 2 - 常用模块【Node.js】笔记整理 3 - n…

采购业务中的主数据

目录 一、维护BP主数据业务伙伴BP的概念业务伙伴涉及的表业务伙伴维护操作一次性客商数据 二、维护物料主数据三、维护采购信息记录四、与FI相关集成点物料主数据的价格控制评估类与科目确定 一、维护BP主数据 业务伙伴BP的概念 在S/4HANA中,SAP引入了BP(Business…

电力智能辅助监控平台

电力智能辅助监控平台是一种集成了先进技术的电力系统监控解决方案。该平台利用人工智能、物联网、云计算和大数据等技术,依托电易云-智慧电力物联网,对电力系统的运行状态进行实时监控和分析,以实现更高效、更智能的电力管理。 以下是电力智…

Hadoop学习笔记(HDP)-Part.06 安装OracleJDK

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …

java学习part36set

157-集合框架-Set不同实现类的对比及Set无序性、不可重复性的剖析_哔哩哔哩_bilibili 1.Set 加入集合的时候会先调用重写的hash方法计算hash值,不一样就加入。 如果hash一样且equals也是true就是重复 ,调equals是为了保险,保证排除hash碰撞…

Ubuntu 安装 CUDA 和 cuDNN 详细步骤

我的Linux系统背景: 系统和驱动都已安装。 系统是centos 8。查看自己操作系统的版本信息:cat /etc/issue或者是 cat /etc/lsb-release 用nvidia-smi可以看到显卡驱动和可支持的最高cuda版本,我的是12.2。驱动版本是535.129.03 首先&#…

中缀表达式转后缀表达式(详解)

**中缀表达式转后缀表达式的一般步骤如下: 1:创建一个空的栈和一个空的输出列表。 2:从左到右扫描中缀表达式的每个字符。 3:如果当前字符是操作数,则直接将其加入到输出列表中。 4:如果当前字符是运算符&a…

如何理解EDI报文,EDI报文标准以及版本号?

首先需要梳理EDI报文、EDI报文标准以及版本号这三个名词代表的不同含义。 EDI报文标准,即EDI文件在生成和解析时需要遵循的规则,通常情况下,在与交易伙伴实施EDI项目的过程中,交易双方需要按照同一套EDI报文标准处理文件&#xf…

Redis命令详解

文章目录 Key(键) DEL EXISTS EXPIRE EXPIREAT PEXPIRE PEXPIREAT PERSIST KEYS TTL PTTL RENAME RENAMENX TYPE SCAN HSCAN SSCAN ZSCAN DUMP String(字符串) SET GET INCR DECR MSET MGET APPEND SETNX STRLEN INCRBY DECRBY IN…

常见的几种计算机编码格式

前言: 计算机编码是指将字符、数字和符号等信息转换为计算机可识别的二进制数的过程,正因如此,计算机才能识别中英文等各类字符。计算机中有多种编码格式用于表示和存储文本、字符和数据,实际走到最后都是二进制,本质一…

【云原生-K8s】检查yaml文件安全配置kubesec部署及使用

基础介绍基础描述特点 部署在线下载百度网盘下载安装 使用官网样例yamlHTTP远程调用安全建议 总结 基础介绍 基础描述 Kubesec 是一个开源项目,旨在为 Kubernetes 提供安全特性。它提供了一组工具和插件,用于保护和管理在 Kubernetes 集群中的工作负载和…

Matplotlib plt.scatter()相关——(待完善)

1.python plt.scatter() 2.Python中的plt.scatter函数如何自定义颜色空间(附详细代码) 3.PYthon——plt.scatter各参数详解 4.plt.scatter()参数详解 5.plt.scatter各参数详解 6.plt.scatter( ) 函数的使用方法 7.matplot画图之plt.scatter()函数 8.Pyth…

计算机操作系统1

.11.操作系统的基本定义 2.操作系统的四大特征 2.1.操作系统的虚拟特征 3.操作系统的功能: 1.处理器管理 2.存储器管理 3.文件管理 4.设备管理 4.总结: 1.并发和共享互为存在,没有并发也就没有共享,反之也是。 2.并发和并行的…

Java多线程详解(上)——2023/11/23

Process(进程)与Thread(线程) 说起进程,就不得不说下程序。程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。而进程则是执行程序的一次执行过程,它是一个动…

为什么C语言用int *a 来声明指针变量,而不是int a声明?

为什么C语言用int *a 来声明指针变量,而不是int &a声明? 在开始前我有一些资料,是我根据自己从业十年经验,熬夜搞了几个通宵,精心整理了一份「C语言从专业入门到高级教程工具包」,点个关注&#xff0c…

关系型数据库的数据隔离级别Read Committed与Repeatable Read

一、背景 数据库隔离级别会影响到我们的查询,本文试图以生产中的示例,给你一个直观的认识。 所谓,理论要结合实践,才能让我们理解得更加透彻。 另外,隔离级别的知识面很大,本文也不可能俱全,…