【Git】安装以及基本操作

目录

  • 一、初识Git
  • 二、 在Linux底下安装Git
    • 一)centOS
    • 二)Ubuntu
  • 三、 Git基本操作
    • 一) 创建本地仓库
    • 二)配置本地仓库
    • 三)认识工作区、暂存区、版本库
    • 四)添加文件
    • 五)查看.git文件
    • 六)修改文件
    • 七)版本回退
    • 八)撤销修改
    • 九)删除文件

努力经营当下,直至未来明朗!


一、初识Git

  1. 版本控制器:记录每次的修改以及版本迭代的一个管理系统。
  2. Git:其实就是最常用的版本控制器。可以维护控制电脑上所有格式的文档。
    如:对于开发人员来说,最主要就是维护项目中的源代码文件。
  3. 注意:对于二进制文件如图片、视频等,具体修改的内容是未知的,只是知道如修改了其文件的存储大小等信息。

二、 在Linux底下安装Git

此时我在我的Xshell上的服务器来进行安装(centos)。

一)centOS

  1. 首先查看当前服务器底下有没有安装Git
git --version
  1. 如果已经安装,需要进行卸载
sudo yum remove git -y
  1. 补充:清屏的话使用clear

  2. 安装git

sudo yum install git -y
  1. 然后再进行检查
git --version

二)Ubuntu

  1. 首先查看当前服务器底下有没有安装Git
git --version
  1. 如果已经安装,需要进行卸载
sudo apt-get remove git -y
  1. 补充:清屏的话使用clear

  2. 安装git

sudo apt-get install git -y
  1. 然后再进行检查
git --version

三、 Git基本操作

一) 创建本地仓库

  1. 只有在Git仓库下的文件才能被Git追踪管理
  2. 以下创建本地仓库的操作在Xshell中进行完成!

1)首先创建一个目录

 mkdir gitcode   -- [即: mkdir 目录名]

2)切换到该目录底下

 cd gitcode/   -- [即: cd 目录名/]

3)进行目录的展示

ls

4)在该目录下创建空的Git仓库:.git

git init

5)显示当前目录下所有文件(Ubuntu下适用

la

6) 树形展示该目录下的所有文件:千万不要手动修改任何文件!!

tree .git/

0


二)配置本地仓库

  1. 当成功创建出一个本地仓库之后,首先就是要对本地仓库新增两个配置项:name和email。
  2. 为本地仓库设置配置项:git config
  3. 配置name和email:
git config user.name "xxx(实际name)"
git config user.email "xxx(实际email)"
  1. 查看配置,看配置是否已经成功
git config -l
  1. 重置删除配置项
git config --unset user.name   
git config --unset user.name 

11

  1. 一台服务器上可以创建多个本地仓库,加上–global的意思其实就是当前的配置项是会在当前机器的所有git仓库下都生效的
git config --global user.name "xxx"   
git config --global user.name "xxx" 
  1. 在进行global全局配置之后发现直接使用unset重置是失败的,此时想要重置必须在–unset之前加上–global
    12
    13

三)认识工作区、暂存区、版本库

  1. 在gitcode目录下新建一个文件readMe,使用git进行管理.
    ① 但是,在touch完成的情况下,Git是不能管理该readMe文件的
    ② .git称为版本库(仓库),readMe文件称为工作区
touch readMe

15

  1. 强调:不允许在.git下手动修改!!
    16

  2. 工作区、版本库和暂存区之间的关系:
    可以参考:Git工作区、暂存区和版本库
    17

  3. 如何将工作区中的内容使用git来进行管理:
    1)对工作区进行修改操作(如:新增、修改、删除)之后进行add操作则进入版本库的暂存区
    2)然后对暂存区中的内容进行commit之后就被提交到master分支底下
    3)此时就将工作区中的内容真正放到了git仓库下进行管理

  4. objects对象库:工作区文件在执行add命令之后,修改的工作区内容就会被写入对象库的一个新的git对象中,即:维护了文件的版本

  5. 暂存区中存储的不是一个个对象,而是对象索引;master分支中也是一样的,存储的也是对象的索引,也是比较轻量的。

  6. 因为仓库是刚init的,所以目前还没有暂存区,所以tree .git之后看不到index是正常的。


四)添加文件

  1. 操作文件:
编辑文件: vim 文件名
保存并退出: :wq
在屏幕上打印文件内容:cat 文件名
  1. 将文件添加到版本库的暂存区:
    (在已经创建的gitcode目录下操作)
git add 文件名1 文件名2 ···    // 提交该文件
git add .    // 提交该目录下所有文件
  1. 将暂存区文件提交到master分支:
git commit -m "提交的细节描述"

补充:如果在进行该操作时出现了以下异常:

*** Please tell me who you are.Rungit config --global user.email "you@example.com"git config --global user.name "Your Name"to set your account's default identity.
Omit --global to set the identity only in this repository.fatal: unable to auto-detect email address (got 'root@hecs-279575.(none)')
[root@hecs-279575 gitcode]# git log
fatal: bad default revision 'HEAD'

此时,只需要在当前输入下面两句命令,把引号里的改成自己的邮箱和账号就OK了,然后就可以继续操作了

  git config --global user.email "you@example.com"git config --global user.name "Your Name"

19

  1. 打印提交记录
git log
git log --pretty=one-line   // 打印一行漂亮直观日志

五)查看.git文件

根据commit_id来打印文件

git cat-file -p commit_id

20


六)修改文件

  1. Git追踪管理的不是文件,其实是修改。

  2. 修改某个文件的内容,其实就是对该文件进行一个编辑操作,所以使用的是vim操作

  3. 查看版本库的状态:git status
    21

  4. 查看暂存区和工作区内容的差异:

git diff 文件名

22

  1. 查看版本库和工作区文件的区别:
git diff HEAD -- 文件名

七)版本回退

  1. 版本回退命令:
    git reset [--soft | --mixed | --hard] [HEAD] // 本质回退的是版本库的内容;还可以回退到当前版本,即暂存区和工作区代码回退到和版本库中一致
    –soft :只回退版本库中的内容,工作区和暂存区的内容不进行回退
    –mixed(默认): 回退的是版本库和暂存区的内容,工作区的内容不进行回退
    –hard: 回退版本库、暂存区、工作区的内容。(==慎用!!==工作区中的代码也被干掉的话其实是非常头疼的,直接找不回来了)

  2. 使用示例:

git reset [--hard] commit_id   
// 代表回退到commit_id这个版本,该版本之后提交的内容都消失
  1. 如果我进行回退之后后悔了,可以利用之前git log --pretty=oneline打印好的commit_id回到想要回到的版本,同样是使用git reset [--hard] commit_id

11111
4. 那如果git log --pretty=oneline打印好的commit_id已经被clear,此时就使用git reflog打印出所使用的命令进行的操作,最前面的就是commit_id,依旧可以利用该commit_id进行版本的回退
222

  1. git版本回退速度很快的原因:
    HEAD指针是指向master的,而master中存放的是commit_id,所以在进行版本回退的过程中其实只需要修改master的commit_id即可,将指针指向新的内容。

  2. 回退到当前版本:git reset [--mixed | --hard] HEAD [filename]
    回退到当前版本的前n个版本:git reset [--mixed | --hard] HEAD^^ [filename] (^的数量取决于回退到前n个版本)


八)撤销修改

  1. 工作区、暂存区、版本库的回退操作
    yy

1)工作区和暂存区的回退
工作区+暂存区
2)工作区、暂存区、版本库的回退
版本库


九)删除文件

  1. 针对工作区中的文件进行删除:rm [filename]
  2. 将文件从工作区、暂存区、版本库中删除:
rm [filename]
git add [filename]
git commit -m "xxx"
  1. 将文件从工作区、暂存区、版本库中删除,可以简化为以下俩步骤:
git rm [filename]  // 将文件从工作区、暂存区删除
git commit -m "xxx"

222

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

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

相关文章

基于docker部署的Selenium Grid分布式自动化测试

01、什么是Selenium Grid Selenium Grid是Selenium套件的一部分,它专门用于并行运行多个测试用例在不同的浏览器、操作系统和机器上。 Selenium Grid有两个版本——老版本Grid 1和新版本Grid 2。我们只对新版本做介绍,因为Selenium团队已经逐渐遗弃老版…

docker容器管理

创建容器: docker run --name 容器名 -d -p 端口1:端口2 –name :是启动容器时,给容器定义的名称,不使用该参数时,容器启动成功之后,会生成随机名称 -d :代表容器处于后台yunx -p :指定容器的端…

第一次参加计算机会议报告注意事项以及心得

计算机会议参会报告 注意事项参会前参会中参会后 参会心得 注意事项 接下来的会议注意事项分为:(1)参会前,(2)参会中,(3)参会后 参会前 参会前,一般被邀请…

实时安全分析监控加强网络安全

网络犯罪分子只需几分钟,有时甚至几秒钟即可泄露敏感数据。但是,IT 团队可能无法在数周内发现这些违规行为。通常,这些违规行为是由外部方或客户发现的,到那时为时已晚。随着网络漏洞的激增,对安全分析的需求空前高涨。…

【C# Programming】C#第一课(自己学习的笔记)

目录 一、C# 介绍 1.1 托管代码(Manage Code ) : 1.2 基础类型库 (Base Class Library): 1.3 程序集(Assembly): 1.4 .NET 框架: 1.5 公共中间语言(Common Intermediate Language),简称 IL。 1.6 C#编译器将源代…

实战:工作中对并发问题的处理 | 京东物流技术团队

1. 问题背景 问题发生在快递分拣的流程中,我尽可能将业务背景简化,让大家只关注并发问题本身。 分拣业务针对每个快递包裹都会生成一个任务,我们称它为 task。task 中有两个字段需要关注,一个是分拣中发生的异常(exp…

DIP: Spectral Bias of DIP 频谱偏置解释DIP

On Measuring and Controlling the Spectral Bias of the Deep Image Prior 文章目录 On Measuring and Controlling the Spectral Bias of the Deep Image Prior1. 方法原理1.1 动机1.2 相关概念1.3 方法原理频带一致度量与网络退化谱偏移和网络结构的关系Lipschitz-controlle…

Linux常规操作命令

日升时奋斗,日落时自省 目录 1、vim 1.1、工作模式 1.2、末行模式操作相关命令 1.2.1、保存退出操作 1.2.2、查找替换 1.3、输入模式操作相关命令 1.3.1、移动相关命令 1.3.2、删除和剪切命令 1.3.3、复制操作 1.3.4、撤销 2、head 3、tail 4、ps 5、…

数据结构算法--2 冒泡排序,选择排序,插入排序

基础排序算法 冒泡排序 思想就是将相邻元素两两比较,当一个元素大于右侧相邻元素时,交换他们的位置,小于右侧元素时,位置不变,最终序列中的最大元素,像气泡一样,到了最右侧。 这时冒泡排序第一…

linux Socket简单编程实例

服务端 网络编程中服务端接受连接的套接字创建过程如下: 1.调用socket函数创建套接字 2.调用bind函数分配IP地址和端口号 3.调用listen函数转为可接收请求状态 4.调用accept函数受理连接请求 #include <stdio.h> #include <stdlib.h> #include <sys/types.h>…

Java实现根据姓名生成头像(钉钉样式)

头像生成器代码如下&#xff1a; package com.hua.util;import org.apache.commons.lang3.StringUtils;import javax.imageio.ImageIO; import java.awt.*; import java.awt.geom.RoundRectangle2D; import java.awt.image.BufferedImage; import java.io.File; import java.i…

配置listener tcps加密 enable SSL encryption for Oracle SQL*Net

一 配置客户端和服务端的wallet 2端配置方法一致&#xff0c;相互添加证书 orapki wallet create -wallet “/u01/oracle/wallet” -pwd Wdkf984jkkgekj434FKFD -auto_login_local orapki wallet add -wallet “/u01/oracle/wallet” -pwd Wdkf984jkkgekj434FKFD -dn “CNho…

Zabbix监控MySQL数据库实战

zabbix监控mysql的方式 只是安装agent 启用模板监控 启用自定义脚本的模板监控 使用zabbix模版及结合shell脚本监控mysql 创建mysql的zabbix授权用户 mysql> grant all PRIVILEGES on *.* to zabbixlocalhost identified by zabbix; ###创建一个有权限的访问用户lqb密码设…

es1.7.2 按照_type先聚合,再按照时间二次聚合

// 设置查询条件if (this.query ! null) {this.searchbuilder.setQuery(this.query);}TermsBuilder typeAggregation AggregationBuilders.terms("agg_type").field("_type");DateHistogramBuilder dateTermsBuilder AggregationBuilders.dateHistogram(…

[Android] 通过JNI 让 JAVA 调用 android native 接口

前言&#xff1a; JNI (java native interface) 是一个库&#xff0c;可以让 java 代码和其他语言互动&#xff0c;比如 java 通过 JNI 调用融合了 jni库的 c/c 代码&#xff0c;注意&#xff0c;这里要求 c/c代码中必须通过链接 jni 库并按照 JNI 规范定义一套可供 JAVA 调用…

STM32自带的DSP库的滤波初体验(一)

最近在弄STM32自带的DSP库里的滤波&#xff0c;记录一下&#xff1a; arm_fir_instance_q15 instance_q15_S; #define NUM_TAPS 16 //滤波系数的个数 #define BLOCK_SIZE 32 q15_t firStateF32[BLOCK_SIZE NUM_TAPS]; q15_t Fir_Coeff[NUM_TAPS] {-79, -136, 312, 6…

【02】基础知识:typescript数据类型

1、布尔类型 boolean let flag: boolean false2、数字类型 number let num: number 6 //十进制 let num2: number 0xf00d //十六进制 let num3: number 0b1010 //二进制 let num4: number 0o744 //八进制3、字符串类型 string 用双引号&#xff08;“&#xff09;或单引…

MongoDB 简介

什么是MongoDB ? MongoDB 是由C语言编写的&#xff0c;是一个基于分布式文件存储的开源数据库系统。 在高负载的情况下&#xff0c;添加更多的节点&#xff0c;可以保证服务器性能。 MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB 将数据存储为一个…

mqttfx连上OneNET生成token时的一大坑,报用户名或密码错误

整个流程如下连接&#xff1a; MQTT.fx和MQTTX 链接ONENET物联网开发平台避坑细节干货。 其中在生成token时&#xff0c;搞了半天在连接后都会报用户名密码错误 最后发现是格式问题&#xff0c;输入所有字符后一定要双击看是否可以全选中&#xff0c;可以全选中说明字符的格式…

java spring cloud 企业工程管理系统源码+二次开发+定制化服务 em

Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下&#xff1a; 首页 工作台&#xff1a;待办工作、消息通知、预警信息&#xff0c;点击可进入相应的列表 项目进度图表&#xff1a;选择&#xff08;总体或单个&#xff09;项目显…