Git基础操作

news2025/5/25 17:55:53

前言

本文会向您介绍如何安装git,以及快速地上手add,commit,push,版本回退操作

基础配置

关于windous上的安装git官网已经介绍的很清楚了,您可以直接点入链接windows安装
如果你的平台是centos,以centos7.6为例:

⾸先,你可以试着输⼊git,看看系统有没有安装Git:
-bash: git: command not found
出现像上⾯的结果,Linux会友好地告诉你Git没有安装。
安装git:
 sudo yum -y install git
 //查看当前安装版本
 git --version

如果你的的平台是ubuntu,以ubuntu20.04为例
⾸先,你可以试着输⼊git,看看系统有没有安装Git:

:Command 'git' not found, but can be installed with:
sudo apt install git
出现像上⾯的结果,Linux会友好地告诉你Git没有安装,还会告诉你如何安装Git。
安装git:
sudo apt-get install git -y
//查看当前版本
git --version

安装完Git后,要做的第一件事就是设置你的用户名和邮件地址。
每一个Git提交都会使用这些信息,都会写入到你的每一次提交中

git config --global user.name 'your_name'
git config --global user.email 'your_email@...'
其中 --global 是⼀个可选项。如果使⽤了该选项,表⽰这台机器上所有的 Git 仓库都会使⽤这个配置。如果你希望在不同仓库中使⽤不同的 name 或 e-mail ,可以不要 --global 选项
config的三个作用域 git config --local 只对某个仓库有效 git config --global 对当前用户所有仓库有效 git config --system 对系统所有登录的用户有效 显示config的配置,加上 --list git config --list --local git config --list --global git config --list --system

创建Git本地仓库
仓库是进行版本控制的一个文件目录。我们想要对文件进行版本控制,就必须先创建出一个仓库出来

创建⼀个 Git 本地仓库对应的命令为 git init ,注意命令要在⽂件⽬录下执⾏
你可以先madir 一个名为gitcode的目录,然后cd进入目录使用git init命令

在这里插入图片描述
当前⽬录下多了⼀个 .git 的隐藏⽂件, .git ⽬录是 Git 来跟踪管理仓库的,不要⼿动修改这个⽬录⾥⾯的⽂件,不然改乱了,就把 Git 仓库给破坏了
如果您是在windows下安装的,您可以打开创建的仓库目录
然后右键点击Git Bash Here
在这里插入图片描述

引入

当配置完基础信息后,接下来引入几个概念:

关于GIt
1、Git与其他版本控制系统的主要差别在于Git对待数据的方式,其他大部分系统以文件变更列表的方式存储信息, 并记录每个文件随时间逐步累积的差异。也就是说,每次版本迭代时,系统只记录文件与上一个版本的差异,而不是整个文件内容,从而减少了存储空间的占用。这种基于差异的实现方式可以提高版本控制系统的效率和可扩展性。
2、Git近乎所有的操作都是本地执行,只需要访问本地文件和资源,一般不需要来自网络其它计算机的信息,要浏览项目的历史,Git不需要连到服务器去获取历史,然后再显示出来,它只需要从本地数据库中读取。这也意味着在离线或者没有VPN的情况下,也能进行任何操作。
3、Git所有的数据在存储前都计算校验和,然后以校验和来引用。这意味着不可能在Git不知情的情况下修改任何文件内容或目录内容
• ⼯作区:是在电脑上你要写代码或⽂件的⽬录。
• 暂存区:英⽂叫 stage 或 index。⼀般存放在 .git ⽬录下的 index ⽂件(.git/index)中,我们把暂存区有时也叫作索引(index)。
• 版本库:⼜名仓库,英⽂名 repository 。⼯作区有⼀个隐藏⽬录 .git ,它不算⼯作区,⽽是 Git 的版本库。这个版本库⾥⾯的所有⽂件都可以被 Git 管理起来,每个⽂件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

git add与git commit

git add
git add . 将当前目录下的所有修改的文件(刚创建的文件也算修改)添加到暂存区
git add <file> 将指定文件添加到暂存区
git add -i 进入交互模式,可以选择要添加的文件

添加文件
您可以使用git add 命令去跟踪一个文件
在这里插入图片描述
git add 是将⽂件添加到暂存区, git commit 是将暂存区的内容添加到本地仓库中。
我们可以观察下图git add操作即是将未跟踪的文件(untracked)添加到暂存区(Staged)

在这里插入图片描述
最后可使用

git commit -m"日志message"
git commit -a 自动将所有已修改或已删除的文件添加到暂存区并提交修改

注意日志这里不要随便写,交代清楚提交了什么修改了什么
在这里插入图片描述
当我们使用vim改动test2文件中的内容
使用git status查看当前git的状态
在这里插入图片描述
git会提醒我们需要git add更新要提交的内容
在这里插入图片描述
在这里插入图片描述

工作目录下的每一个文件都不外乎两种个状态:已跟踪和未跟踪。已跟踪的文件是指哪些被纳入了版本控制的文件
在上一次的快照中有它们的记录,在工作一段时间后,它们的状态可能时为修改,已修改或已放入暂存区。
初次克隆某个仓库的时候,工作目录中的所有文件都属于已跟踪文件,并处于未修改状态

版本回退

第一种情况只变更工作区的内容
在这里插入图片描述
我们可以使用来恢复仅在工作区变更的内容(注意:这里是未有git add更改后的文件)

git checkout -- Readme

第二种情况:已经add了,但没有commit
首先介绍一个命令

git reset 命令语法格式为: git reset [--soft | --mixed | --hard] [HEAD]
• --mixed 为默认选项,使⽤时可以不⽤带该参数。该参数将暂存区的内容退回为指定提交版本内 容,⼯作区⽂件保持不变。 • --soft 参数对于⼯作区和暂存区的内容都不变,只是将版本库回退到某个指定版本。 • --hard 参数将暂存区与⼯作区都退回到指定版本。切记⼯作区有未提交的代码时不要⽤这个命 令,因为⼯作区会回滚,你没有提交的代码就再也找不回了,所以使⽤该参数前⼀定要慎重。 HEAD 说明: ◦ 可直接写成 commit id,表⽰指定退回的版本 ◦ HEAD 表⽰当前版本 ◦ HEAD^ 上⼀个版本 ◦ HEAD^^ 上上⼀个版本 ◦ 以此类推...

我们先用

git log --pretty=oneline

git log --pretty=oneline" 是一个Git命令,用于显示提交历史的简洁视图。使用该命令可以将每个提交的信息显示在一行上
在这里插入图片描述
需要说明的是,我们看到的⼀⼤串类似 5608e…的是每次提交的 commit id (版本
号),Git 的 commit id 不是1,2,3……递增的数字,⽽是⼀个 SHA1 计算出来的⼀个⾮常⼤的数
字,⽤⼗六进制表⽰
利用git reset命令将暂存的内容退回为指定提交版本内容
在这里插入图片描述
我们再使用git checkout命令撤销在工作区中修改的内容
在这里插入图片描述
第三种情况:已经add并且commit了
对Readme进行修改
在这里插入图片描述
并且add和commit
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
git reset --hard HEAD^此命令将工作区、暂存区、版本库中的内容回退到上个commit的版本

小结

本文的分享就到这里啦,如果本文存在疏漏或错误的地方还请您能够指出!

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

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

相关文章

【树形 DP】树形 DP 的通用思路

题目描述 这是 LeetCode 上的 「310. 最小高度树」 &#xff0c;难度为 「中等」。 Tag : 「树形 DP」、「DFS」、「动态规划」 树是一个无向图&#xff0c;其中任何两个顶点只通过一条路径连接。 换句话说&#xff0c;一个任何没有简单环路的连通图都是一棵树。 给你一棵包含 …

24.(地图工具篇)geoserver热力图层SLD样式效果

地图之家总目录(订阅之前必须详细了解该博客) 示例效果 一:SLD代码 <?xml version="1.0" encoding="ISO-8859-1"?><StyledLayerDescriptor version="1.0.0"xsi:schemaLocation

【UE 粒子练习】05——创建光束类型粒子

效果 步骤 1. 新建一个材质&#xff0c;这里命名为“Mat_Beam” 设置材质域为表面&#xff0c;混合模式为半透明&#xff0c;着色模型为无光照 材质节点如下&#xff1a; 2. 新建一个粒子系统&#xff0c;命名为“P_Beam” 打开“P_Beam”&#xff0c;在发射器中新建一个光束数…

无线振弦采集仪应用隧道安全监测的方案解析

无线振弦采集仪应用隧道安全监测的方案解析 隧道是交通建设中重要的组成部分&#xff0c;安全监测是保障隧道使用安全的重要手段。无线振弦采集仪可以对隧道进行实时、连续的振动监测&#xff0c;提供精确的数据分析和预警&#xff0c;是隧道安全监测的有效工具。 无线振弦采…

DolphinDB x 龙蜥社区,打造多样化的数据底座

近日&#xff0c;浙江智臾科技有限公司&#xff08;以下简称“DolphinDB”&#xff09;正式签署 CLA 贡献者许可协议&#xff0c;加入龙蜥社区&#xff08;OpenAnolis&#xff09;。 DolphinDB 主创团队从 2012 年开始投入研发产品。作为一款基于高性能时序数据库&#xff0c;D…

mysql集群使用nginx配置负载均衡

参考链接&#xff1a;https://mu-sl.com//archives/mysql%E9%9B%86%E7%BE%A4%E4%BD%BF%E7%94%A8nginx%E9%85%8D%E7%BD%AE%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1 配置文件nginx_tcp.conf 示例 load_module modules/ngx_stream_module.so;stream{upstream tcpssh{hash $remote_…

【css】如何实现自定义滚动悬浮置顶、固定表头

说到固定表头或者滚动置顶&#xff0c;我们需要认识css的两个api的2个属性&#xff1a; position: sticky; position: sticky; 是 CSS 中的一种定位方式。当应用于元素时&#xff0c;该元素在滚动时会固定在父容器的指定位置&#xff0c;直到滚动到达特定的位置或条件满足后&…

数据库设计与建模

数据库设计与建模 1 数据库设计的三范式2 数据库建模2.1 建模工具2.2 使用pd建模 1 数据库设计的三范式 三范式&#xff1a; 1.第一范式&#xff08;1NF&#xff09;&#xff1a;确保每一列的原子性&#xff08;做到每列不可拆分&#xff09;2.第二范式&#xff08;2NF&#xf…

从一到无穷大 #17 Db2 Event Store,A Purpose-Built IoT Database Engine

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 本作品 (李兆龙 博文, 由 李兆龙 创作)&#xff0c;由 李兆龙 确认&#xff0c;转载请注明版权。 文章目录 引言Architectural overviewData format and meta-dataEnsuring fast ingestionMulti…

【山河送书第十二期】:《巧用ChatGPT快速搞定数据分析》参与活动,送书两本!!

【山河送书第十二期】&#xff1a;《巧用ChatGPT快速搞定数据分析》参与活动&#xff0c;送书两本&#xff01;&#xff01; 关键亮点内容简介作者简介购买链接参与方式往期赠书回顾 关键亮点 用ChatGPT颠覆数据分析&#xff0c;1分钟生成数据分析结果&#xff01; 30多个精心挑…

山洪灾害监测预警系统解决方案

一、方案背景 近几年我国频繁发生山洪灾害现象&#xff0c;造成大量的人员伤亡&#xff0c;使得洪涝灾害死亡总人数呈上升趋势&#xff0c;群死群伤事件时有发生。为了提高山洪灾害监测预警能力&#xff0c;加强灾害发生时的快速反应能力&#xff0c;我司研发出了山洪灾害监测预…

C语言利用联合体判断大小端

#include<stdio.h>#define SIZE(a) (sizeof(a)) union {/* data */short s;char c[SIZE(short)];short b;int d;char f; }un; int main(int argc,char **argv) {un.s 0x0102;if(SIZE(short) 2)//表示short是16位{printf("\n");printf("c[0] %d,c[1…

QT:使用行编辑器、滑动条、滚动条、进度条、定时器

widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QLineEdit> //行编辑器 #include <QSlider> //滑动条 #include <QScrollBar> //滚动条 #include <QProgressBar> //进度条 #include <QTimer> …

机器学习 day33(误差分析、添加数据、迁移学习)

误差分析 我们可以手动查看分类错误的子集样本&#xff08;通常为100个&#xff09;&#xff0c;并统计他们的错误类型在所有错误类型中&#xff0c;选择一种或几种最常见的错误&#xff0c;进行改进。这可以最高效的改进你的模型误差分析的一个限制是&#xff1a;它只能很好…

微服务08-认识和使用SpringAMQP

1.AMQP的认识 1.1 介绍 AMQP是什么&#xff1f;看完你就知道了_hello_读书就是赚钱的博客-CSDN博客_amqp 好处&#xff1a; 什么connection&#xff1a;消息队列的连接、channel&#xff1a;服务发送接收消息的通道、Queue&#xff1a;消息队列——>这些你都不需要自己编写…

Keil 5 或者Keil 4自定义主题颜色100%成功

文章目录 步骤一:代码内容解析&#xff1a;完整文件代码一效果图&#xff1a;黑主题Keil 原主题 步骤一: 找到keil 5或者Keil 4软件安装目录下的UV4文件夹下的global.prop文件&#xff0c;然后用记事本打开该文件&#xff0c;复制下面配置替换到global.prop文件里的所有内容保…

IO口电路种类

文章目录 参考1.高速振荡电路&#xff08;时钟IO引脚&#xff09;2.与 GPIO 功能共享的低速振荡电路&#xff08;子时钟IO&#xff09;3.CMOS 滞后输入引脚4.电源输入保护电路5.A/D 转换器 ref (AVRH)带保护电路的电源输入端6.CMOS 电平输出7.CMOS 电平输出&#xff0c;带有模…

键盘失灵按什么键恢复?详细方法分享!

“我的电脑键盘莫名其妙失灵了&#xff0c;试了好多方法都无法恢复。请问遇到键盘失灵的情况&#xff0c;应该按什么键才能恢复呢&#xff1f;” 键盘是计算机的重要输入设备之一&#xff0c;但有时候它可能会出现失灵的情况&#xff0c;让用户感到困惑和不知所措。但其实&…

软件设计师笔记系列(一)

&#x1f600;前言 在日常生活和工作中&#xff0c;我们依赖于各种各样的计算机系统来完成一系列复杂的任务。计算机系统不仅仅是硬件设备的集合&#xff0c;它还包括一系列用于协调硬件工作的软件和协议。了解计算机系统的基础知识&#xff0c;包括其构造和功能&#xff0c;是…

【已解决】模糊匹配导致一门课存在多个同名教师

[已解决] 模糊匹配导致一门课存在多个同名教师 问题 LEFT JOIN jsxxb ON XSKB.RKJSXM LIKE jsxxb.JZGXM || ‘%’ 思路 利用正则表达式解决 jsxxb.JZGXM 的字段示例如 李志勇,许蕤 需以&#xff0c;作为分割点&#xff0c;只匹配逗号前面的名字&#xff0c;或者是没有逗号&a…