git简介以及git操作软件下载以及安装教程,git基础指令介绍,持续更新中~

什么是Git?

最近在学一些git的基础指令,仔细地了解了一下git,发现了他的强大功能,分享一下:

Git是一个强大的工具,它在软件开发中扮演着至关重要的角色。
Git是一个开源的分布式版本控制系统,由Linus Torvalds创建,用于有效、高速地处理从小到大的项目。Git是目前世界上最流行的版本控制系统,广泛应用于软件开发中。

Git的核心概念:

  • 仓库(Repository):存储项目所有历史记录的地方,可以看作是项目的版本控制中心。
  • 工作区(Working Directory):项目文件的本地存放区域,你可以在这里修改文件。
  • 暂存区(Staging Area):当你准备提交更改时,可以使用git add命令将更改的文件添加到暂存区。
  • 分支(Branch):Git允许你创建分支来开发新功能或修复bug,而不影响主分支(通常是master或main)。
  • 合并(Merge):将一个分支的更改合并到另一个分支,通常是将分支的更改合并回主分支。
  • 远程仓库(Remote Repository):通常托管在服务器上,如GitHub、GitLab或Bitbucket,用于多人协作和代码共享。
  • 提交(Commit):记录项目历史的快照,每次提交都是项目状态的一个记录。
  • 标签(Tag):用于标记特定提交的名称,通常用于版本发布。

Git的主要特点包括:

  • 速度:Git在合并、分支、历史记录等操作时非常快速。
  • 分布式架构:每个开发者的本地仓库都是一个完整的版本库,可以进行所有操作,不依赖于中央服务器。
  • 数据完整性:Git通过SHA-1哈希算法保护代码和历史记录的完整性。
  • 支持离线工作:开发者可以在本地进行大部分Git操作,不需要网络连接。
  • 分支和合并:Git的分支操作简单,合并时可以自动合并大多数历史记录。
  • 支持多种操作系统:Git可以在Linux、Unix、Mac、Windows等多种操作系统上运行。
  • 支持大项目:Git高效地处理大型项目,如Linux内核项目。

Git通常与GitHub、GitLab或Bitbucket等远程仓库服务一起使用,这些服务提供了一个平台,让开发者可以共享代码、跟踪问题、管理合并请求等。

git指令练习-软件下载

在介绍git指令之前,推荐大家去git官网 https://git-scm.com/ 先下载可以本地操作的软件,安装过程简单,双击即可,步骤在下方:

在这里插入图片描述
在这里插入图片描述
以windows为例,下载下来是这样的,双击运行即可;
在这里插入图片描述
然后右键找到文件所在位置,将Git Bash这个快捷方式搬到桌面上就可以使用了;
在这里插入图片描述
测试一下,输入 git -v 如果可以正确的输出版本号信息,就是安装成功了。
在这里插入图片描述
另外,这个官网中还提供了很多git的图形化界面(GUI Clients),大家需要的话可以下载。

基本的git指令总结

查看git版本

git -v

添加个人信息 包括姓名,邮箱以及默认密码

git config --global user.name "zsl"git config --global user.email xxx@gmail.comgit config --global credential.helper store

查看这些添加的信息

git config --global --list

这里需要对global这个参数进行说明:
省略(Local):本地配置, 只对本地仓库有效;
–global:全局配置,所有仓库生效
–system:系统配置,对所有用户生效 (一般不轻易使用system)

下面进行实例学习:

首先创建文件夹

mkdir learn-git

进入该文件夹

cd learn-git

创建仓库的两种方式:1.git init (本地) 2. git clone +链接 (远程)

ls -a 查看创建的.git文件

再次创建一个指定文件名的仓库:

git init my-repocd my-repo

查看仓库状态

git status

由于此时没有创建任何东西,所以会显示结果:

”On branch master No commits yet nothing to commit (create/copy files
and use “git add” to track) “

file1由未跟踪-已修改-已暂存的过程演示

先创建第一个文件

echo "这是第一个文件" > file1.txtcat file1.txt

此时再次查看仓库状态会显示如下结果:

” On branch master No commits yet

Untracked files: (use “git add …” to include in what will be
committed)
file1.txt nothing added to commit but untracked files present (use “git add” to track) “

此时的文件还未被提交给仓库,还只是未被跟踪文件

将其提交给暂存区

git add file1.txt

此时再次查看仓库状态,显示结果如下:

” On branch master No commits yet Changes to be committed: (use “git
rm --cached …” to unstage)
new file: file1.txt “

但此时的文件还未被提交给仓库,只是被放在了暂存区

同样的,我们也可以创建一个file2.txt

echo "这是文件2的内容" > file2.txtcat file2.txt

最后我们将file1提交给本地仓库

 git commit -m "第一次提交"

-m 后面添加了一个语言提示,方便识别
此时再次查看仓库状态,显示结果如下:

”On branch master Untracked files: (use “git add …” to
include in what will be committed)
file2.txt nothing added to commit but untracked files present (use “git add” to track) “

此时file1已经被成功的提交给了本地仓库,但是由于我们没有给file2进行任何操作,因此其还是个未被跟踪文件。

此外,git也支持多文件同时提交,例如我们现在有文件3文件4文件5,三个文件已经被创建,我们可以一次性把这三个文件添加到暂存区

git add *.txt

当然,如果想把当前文件夹下的所有文件都添加到缓存区,可以:

git add .

此时如果想要全部提交到仓库,可以:

git commit

但是此时由于提交批量的文件,会进入vim编辑模式,只需要按下 i 进入编辑模式,同时在里面输入内容 ”这是第二次提交的内容“,然后按 esc 按键,退出编辑模式,在内容的末尾输入 : wq , 保存并退出即可。

查看仓库提交历史记录

当所有的都提交了之后,我们可以查看仓库提交历史记录:

git log

输出结果如下:

”commit ef0fa20003be3174b161ef596cf3c25262721f92 (HEAD -> master)
Author: zsl xxx@gmail.com Date: Tue Jul 2 16:29:38 2024 +0800

这是第二次提交内容

commit 8a0408aa2c807370f2d6ca443c51977751dc2fd3 Author: zsl
xxx@gmail.com Date: Tue Jul 2 16:02:38 2024 +0800

第一次提交 “

会显示出提交人的详细信息

当然,我们也可以使用更简洁的日志输出形式:

git log --oneline

结果如下:

”ef0fa20 (HEAD -> master) 这是第二次提交内容
8a0408a 第一次提交 “

此时的两次提交进程ID也可以看到了。

持续更新中~

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

使用RAID与LVM磁盘阵列技术

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除 目录 一、RAID磁盘冗余阵列 1、部署磁盘整列 2、损坏磁盘阵列及修复 3、磁盘阵列备份盘 4、删除磁盘阵列 二、LVM逻辑卷管理器 致谢 一、RAID…

1958.力扣每日一题7/7 Java(100%解)

博客主页:音符犹如代码系列专栏:算法练习关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ 目录 思路 解题方法 时间复杂度 空间复杂度 Code 思路 首先将指定位…

反编译kasada

继续研究反编译 这次的网站是 一个航司网站 他有 akamai和 kasada 两种防护 akamai 没啥好说的 结构分析 最开始有个长字符串 处理成 一个十几万的数组 通过 r.W[0] 走什么分支 还有数据的存取 M是一个98个函数组成的数组 代表不同的执行逻辑 这里给他转成了 switch case…

Python3极简教程(一小时学完)中

异常 在这个实验我们学习 Python 的异常以及如何在你的代码中处理它们。 知识点 NameErrorTypeError异常处理(try..except)异常抛出(raise)finally 子句 异常 在程序执行过程中发生的任何错误都是异常。每个异常显示一些相关…

【持续集成_03课_Jenkins生成Allure报告及Sonar静态扫描】

1、 一、构建之后的配置 1、安装allure插件 安装好之后,可以在这里搜到已经安装的 2、配置allure的allure-commandline 正常配置,是要么在工具里配置,要么在系统里配置 allure-commandline是在工具里进行配置 两种方式进行配置 1&#xff…

动手RAG: ocr调研

对于rag应用来说,文档是第一步,对于部分扫描件的文件来讲,主要就需要OCR. OCR tesseractppocrmmocr 还有诸如 chineseocr_litedarknet-ocrhttps://blog.csdn.net/CHYabc123456hh/article/details/107846268easyocr OCR包含几类&#x…

【Unity小技巧】Unity字典序列化

字典序列化 在 Unity 中&#xff0c;标准的 C# 字典&#xff08;Dictionary<TKey, TValue>&#xff09;是不能直接序列化的&#xff0c;因为 Unity 的序列化系统不支持非 Unity 序列化的集合类型。可以通过手写字典实现 效果&#xff1a; 实现步骤&#xff1a; 继承ISe…

基于AOP的数据字典实现:实现前端下拉框的可配置更新

作者&#xff1a;后端小肥肠 创作不易&#xff0c;未经允许严禁转载。 目录 1. 前言 2. 数据字典 2.1. 数据字典简介 2.2. 数据字典如何管理各模块的下拉框 3. 数据字典核心内容解读 3.1. 表结构 3.2. 核心代码 3.2.1. 根据实体类名称获取下属数据字典 3.2.2. 数据字…

HackTheBox----Editorial

Editorial 测试过程 1 信息收集 NMAP端口扫描 nmap -sC -sV 10.10.11.20服务器开启了 22、80 端口 80 端口测试 服务器只开启了 22 和 80 端口&#xff0c;先从 80 端口开始进行测试 echo "10.10.11.20 editorial.htb" | sudo tee -a /etc/hostspublish with us…

电源纹波相关

什么是纹波&#xff1f;什么是噪声&#xff1f; 这种叠加在直流稳定量上的交流分量就称为纹波。 纹波的危害 电源纹波能影响设备性能和稳定性 纹波会导致电器上产生谐波&#xff0c;降低电源的使用效率&#xff1b; 高频电源纹波可能会产生浪涌电压或电流&#xff0c;影响设…

WAWA鱼曲折的大学四年回忆录

声明&#xff1a;本文内容纯属个人主观臆断&#xff0c;如与事实不符&#xff0c;请参考事实 前言&#xff1a; 早想写一下大学四年的总结了&#xff0c;但总是感觉无从下手&#xff0c;不知道从哪里开始写&#xff0c;通过这篇文章主要想做一个记录&#xff0c;并从现在的认…

thingsboard v3.7 win编译相关问题记录

遇到的问题总结 node\yarn 相关版本问题 3.7 开始需要 JDK17 ui-ngx 模块 yarn 相关问题报错 报错信息 [INFO] Downloading https://github.com/yarnpkg/yarn/releases/download/v1.22.10/yarn-v1.22.10.tar.gz to D:\soft\maven\com\github\eirslett\yarn\1.22.10\yarn-1.2…

STM32基础篇:GPIO

GPIO简介 GPIO&#xff1a;即General Purpose Input/Output&#xff0c;通用目的输入/输出。就是一种片上外设&#xff08;内部模块&#xff09;。 对于STM32的芯片来说&#xff0c;周围有一圈引脚&#xff0c;有时需要对引脚进行读写&#xff08;读&#xff1a;从外部输入一…

SLF4J的介绍与使用(有logback和log4j2的具体实现案例)

目录 1.日志门面的介绍 常见的日志门面 &#xff1a; 常见的日志实现&#xff1a; 日志门面和日志实现的关系&#xff1a; 2.SLF4J 的介绍 业务场景&#xff08;问题&#xff09;&#xff1a; SLF4J的作用 SLF4J 的基本介绍 日志框架的绑定&#xff08;重点&#xff09…

线程安全的原因及解决方法

什么是线程安全问题 线程安全问题指的是在多线程编程环境中&#xff0c;由于多个线程共享数据或资源&#xff0c;并且这些线程对共享数据或资源的访问和操作没有正确地同步&#xff0c;导致数据的不一致、脏读、不可重复读、幻读等问题。线程安全问题的出现&#xff0c;通常是…

Mac 系统如何将搜狗输入法设置为默认输入法

Mac 系统默认将自带的ABC输入法作为默认输入法&#xff0c;很不方便中文输入&#xff0c;想设置搜狗输入法为默认输入法如何设置呢&#xff1f;具体步骤如下&#xff1a; 1、打开&#xff1a;系统设置——键盘——文字输入&#xff0c;点击设置 2、点击左下角的 3、选择 其他…

数学系C++(六七)

目录 * &指针与地址 void指针 指针可以等于&#xff1a; const 指向常量的指针 const int *px 常指针 int * const px 指向常量的常指针const 类型标识符 * const 指针名 指针加减&#xff1a; 指针恒等式 函数指针【待续】 指针型函数&#xff1a; 指向函数的…

52-5 内网代理2 - LCX端口转发(不推荐使用LCX)

环境搭建: 本地开3台虚拟机:kali(必须)、windows2012与2008 (可换成其他windows虚拟机) kali - 网络配置成桥接模式 windows2012 - 设置两个网卡,NAT与桥接模式 注意:windows2012要关闭防火墙,要不然其他主机ping不通 关闭防火墙后再开启远程桌面连接 windwos20…

拉曼光谱入门:3.拉曼光谱的特征参数与定量定性分析策略

1.特征参数 1.1 退偏振率 退偏振率&#xff08;p&#xff09;是一个衡量拉曼散射光偏振状态的参数&#xff0c;它描述了拉曼散射光的偏振方向与入射光偏振方向之间的关系。退偏振率定义为垂直偏振方向的拉曼散射强度与平行偏振方向的拉曼散射强度之比。退偏振率&#xff08;p&…

Hi6602 恒压恒流SSR电源方案

Hi6602是一款针对离线式反激电源设计的高性能PWM控制器。Hi6602内集成有通用的原边恒流控制技术&#xff0c;可支持断续模式和连续模式工作&#xff0c;适用于恒流输出的隔离型电源应用中。Hi6602内部具有高精度65kHz开关频率振荡器&#xff0c;且带有抖频功能可优化EMI性能。H…