Git基础操作

前言

本文会向您介绍如何安装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 commit 是将暂存区的内容添加到本地仓库中。
我们可以观察下图git add操作即是将未跟踪的文件(untracked)添加到暂存区(Staged)

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

git commit -m"日志"

注意日志这里不要随便写,交代清楚提交了什么修改了什么
在这里插入图片描述

当我们使用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.rhkb.cn/news/137367.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Verilog教程】2.4Verilog表达式

表达式 表达式由操作符和操作数构成,其目的是根据操作符的意义得到一个计算结果。表达式可以在出现数值的任何地方使用。 例如: a^b ; //a与b进行异或操作 address[9:0] 10b1 ; //地址累加 flag1 && flag2 ; //逻辑与操作操作数 …

有没有普通人可以做的项目?分享几个项目适合普通人做的!

当谈到副业时,我们通常会想到能够轻松实施的兼职方式,并且希望通过这些副业增加我们的收入。那么,以下是我推荐的几种副业,这些副业不仅有良好的收入潜力,而且在执行过程中也很有趣。让我们一起看看吧! 第…

Hive行转列[一行拆分成多行/一列拆分成多列]

场景: hive有张表armmttxn_tmp,其中有一个字段lot_number,该字段以逗号分隔开多个值,每个值又以冒号来分割料号和数量,如:A3220089:-40,A3220090:-40,A3220091:-40,A3220083:-40,A3220087:-40,A3220086:-4…

爬虫框架Scrapy学习笔记-2

前言 Scrapy是一个功能强大的Python爬虫框架,它被广泛用于抓取和处理互联网上的数据。本文将介绍Scrapy框架的架构概览、工作流程、安装步骤以及一个示例爬虫的详细说明,旨在帮助初学者了解如何使用Scrapy来构建和运行自己的网络爬虫。 爬虫框架Scrapy学…

Redis的介绍以及简单使用

Redis(Remote Dictionary Server)是一个开源的内存数据存储系统,它以键值对的形式将数据存在内存中,并提供灵活、高性能的数据访问方式。Redis具有高速读写能力和丰富的数据结构支持,可以广泛应用于缓存、消息队列、实…

华为云云耀云服务器L实例评测|轻量级应用服务器对决:基于 STREAM 深度测评华为云云耀云服务器L实例的内存性能

本文收录在专栏:#云计算入门与实践 - 华为云 专栏中,本系列博文还在更新中 相关华为云云耀云服务器L实例评测文章列表如下: 华为云云耀云服务器L实例评测 | 从零开始:云耀云服务器L实例的全面使用解析指南华为云云耀云服务器L实…

Outlook打开超链接用默认浏览器Microsoft outlook open hyperlink using default browser

这两天outlook打开超链接一直用edge,但我的默认浏览器是chrome。 解决方法 在outlook的选项中的高级设置里面,将超链接打开选为默认浏览器。

ESP8266 Windows下开发环境搭建

文章目录 1、SDK下载2、Windows下的开发工具链安装3、ESP8266专用工具链安装4、运行msys32目录下的mingw32.exe,初始化环境5、配置环境变量6、编译hello world例程7、SDK配置8、烧录9、在串口助手中查看 1、SDK下载 官方提供了两种SDK,OS版本和非OS版本…

java springboot 如何实现小程序支付

今天给大家分享java小程序支付 首先我们学习任何东西要先看官网 下面是支付业务流程 我们具体用代码去实现上面的业务流程 功能截图 代码截图 pay(){//调用后台生成订单var orderNumber "20210101123456";var amount 0.01;WxPay.wxpay(app, amount, orderNumber…

(一)探索随机变量及其分布:概率世界的魔法

文章目录 🍋引言🍋什么是随机变量?🍋离散随机变量🍋连续随机变量 🍋随机变量的概率分布🍋离散概率分布🍋0-1分布(Bernoulli分布)🍋二项分布&#…

Unity制作曲线进度条

unity制作曲线进度条 大家好,我是阿赵。   在使用Unity引擎做进度条的时候,有时会遇到一个问题,如果进度条不是简单的横向、纵向或者圆形,而是任意的不规则形状,那该怎么办呢?比如这样的: 一…

CentOS7安装Nginx+ModSecurity

一、介绍 当学习网络安全时,了解和使用安全设备是必不可少的一部分,其中一种常见的安全设备是Web应用防火墙(WAF)。市场上有许多商业化的WAF,但对于学习目的,我推荐使用一款免费开源的WAF,名为…

SpringMVC自定义注解和使用

一.引言 1.简介: 在Spring MVC中,我们可以使用自定义注解来扩展和定制化我们的应用程序。自定义注解是一种通过Java的注解机制定义的特殊注解,可以应用于控制器类、方法或者方法参数上,以实现不同的功能和行为。(注解…

【小记录】jupyter notebook新版本

手欠升级 😅今天手贱,在anaconda navigator里面更新了最新版本的spyder,然后莫名奇妙地jupyter notebook就打不开了😅,报错说缺少模块”ModuleNotFoundError: No module named jupyter_server.contents“,…

4G版本云音响设置教程腾讯云平台版本

文章目录 4G本云音响设置教程介绍一、申请设备三元素1.腾讯云物联网平台2.创建产品3.设置产品参数4.添加设备5.获取三元素 二、设置设备三元素1.打开MQTTConfigTools2.计算MQTT参数3.使用USB连接设备4.设置参数 三、腾讯云物联网套件协议使用说明1.推送协议信息2.topic规则说明…

解决连接数据库提示:Public Key Retrieval is not allowed

最近在使用新的用户连接mysql时,总是提示:Public Key Retrieval is not allowed 解决方法一:在(连接属性)添加allowPublicKeyRetrievaltrue 解决方法二(不建议):先在cmd上登录

分类预测 | Matlab实现RBF-Adaboost多特征分类预测

分类预测 | Matlab实现RBF-Adaboost多特征分类预测 目录 分类预测 | Matlab实现RBF-Adaboost多特征分类预测效果一览基本介绍研究内容程序设计参考资料 效果一览 基本介绍 1.Matlab实现基于RBF-Adaboost数据分类预测(Matlab完整程序和数据) 2.多特征输入…

编译工具:CMake(八) | cmake 常用指令

编译工具:CMake(八) | cmake 常用指令 基本指令 基本指令 ADD_DEFINITIONS向 C/C编译器添加-D 定义,比如:ADD_DEFINITIONS(-DENABLE_DEBUG-DABC),参数之间用空格分割。 如果你的代码中定义了#ifdef ENABLE_DEBUG #end…

canvas-绘图库fabric.js简介

一般情况下简单的绘制,其实canvas原生方法也可以满足,比如画个线,绘制个圆形、正方形、加个文案。 let canvas document.getElementById(canvas);canvas.width 1200;canvas.height 600;canvas.style.width 1200px;canvas.style.height 6…

C++ - AVL 树 介绍 和 实现 (上篇)

前言 之前我介绍了 二叉搜索树,可看一下博客:C - 搜索二叉树_chihiro1122的博客-CSDN博客 二叉搜索树的效率可以达到 O(log n) 。这个复杂度的算法的效率是非常恐怖的,2 的 30 次方大概是 10亿左右。也就是说 如果用暴力查找 需要找 10 亿次&…