目录

一、Git常用命令

1.1、设置用户签名

1.2、初始化本地库

1.3查看本地库状态

1.3、添加文件到暂存区

1.4、将暂存区文件添加文件到本地库

1.5、查看历史版本(提交历史记录)

1.6、修改文件

1.7、版本穿梭


一、Git常用命令

1.1、设置用户签名

git config --global user.name "用户名"
git config --global user.email 邮箱

配置权限:

1. local(优先级最高):默认,只影响本地;

2. global (优先级中等) :影响当前用户的git仓库;

3. system (优先级最低) :印象到全系统的git仓库;

注意:首次下载git一定要进行设置,否则后续提交代码会出错;这里的邮箱不一定需要真实邮箱,可以是一个虚拟邮箱;

执行效果:

通过如下路径

找到如下文件打开,便可以看到刚刚的配置效果;


1.2、初始化本地库

git init 

使用方法:


1.3查看本地库状态

先来介绍以下git中的两个状态:

1.内容状态:表示内容文件的改变,有三个区域,分别是 工作区、暂存区、提交区;

2.文件状态:有两个,已跟踪和未跟踪;

关系如下:

如何查看本地库状态?命令如下:

git status

使用效果

解释:

On branch master:表示当前在master(默认)这个分支下;

No commits yet:表示当前还没有提交过任何东西,是一个空的库;

nothing to commit :表示没有东西需要提交(该目录下没有可提交的文件);如果通过vim创建了一个test.txt文件,再查看本地库状态,就如下图

那如何把本地文件添加到暂存区呢?往下看~


1.3、添加文件到暂存区

//添加文件内容到暂存区(同时文件被跟踪)
git add 文件名 + 后缀
//添加所有文件
git add .

执行效果:(将文件test.txt添加的到暂存区)

这里有一个警告是怎么回事呢?实际上就是我们test文件中的内容换行符是用的CRLF,而linux下需要使用LF;实际上,这个警告不用担心,因为他会帮你自动转换的;

接下来使用git status 查看状态就会发现:(如下图)

这里就表示test.txt放入暂存区中了;当然,如果你想把他从暂存区删除掉(只是删掉了暂存区的,工作区的还是存在的),上一行命令也提示你了,可以使用"git rm --cached <file>..."来删除;

添加的暂存区,接下来需要干什么呢?往下走~


1.4、将暂存区文件添加文件到本地库

通过这个操作,就可以把代码提交到本地库,形成自己的历史版本;

//从暂存区中提交
git commit -m 'first commit' 暂存区中的文件名+后缀
//扩展:从工作区提交
git commit -a -m 'full commit' 工作区中的文件名+后缀

'first commit' 这里的日志可以根据自己情况所写;

执行效果如下:

蓝框里的 6fc5174 就表示当前提交的版本号(精简版,后文有介绍完整版);

这时候本地库状态是什么样的呢?如下执行效果

nothing to commit, working tree clean :这里就表示,没有东西可以提交了,工作已经清理完成;

1.5、查看历史版本(提交历史记录)

//查看历史提交版本信息
git reflog
//查看历史提交版本的详细信息
git log

执行效果如下:

这里的first commit是当时你提交时候所写的日志信息~

(HEAD  ->  master)就表示指向的当前版本;


1.6、修改文件

如何修改已经提交了的文件呢?

这里作者已经修改过的文件,如下

通过git status查看本地库状态如下

这里就会提示你,文件已经是被修改过的了,并且又放到了工作区(标红了)

通过git add 和 git commit提交文件,最后查看本地库信息,就发现已经清理干净了~

通过git reflog查看提交版本信息就可以观察到,上面两次提交的结果,如下:


1.7、版本穿梭

先来简单了解一下什么是版本穿梭~

简单来讲就是当前提交版本,你觉得写的并不好(还没有上一个提交版本写的好),就可以通过版本穿梭,穿梭到上个版本!

//git reset   将当前分支回退到历史某个版本
git reset --mixed 版本号 //(默认)
git reset --soft 版本号
git reset --hard 版本号 Ps:
--mixd表示只保留工作区状态,暂存区会被重置
--soft表示工作区和暂存区都保留
--hard表示工作区和暂存区都被重置总结: 它们均有移动 HEAD 指针的能力,但是它们对于工作区与暂缓区的处理却是不同的。

那就演示一下,将刚刚修改的test,txt的第二个版本回退到第一个版本,如下~

查看提交日志,如下

(HEAD  ->  master)就表示当前版本指向;

底层原理:

git 控制版本信息,并不是通过复制粘贴内容创造副本实现的,而是在内存中记录了很多版本信息,最后通过调用指针来指向不同的版本;

注意:

版本穿梭不光可以穿梭到以前的版本,还可以穿梭到以后的版本~


【Git】常用命令详解(循序渐进,逐步分析)相关推荐

  1. Git 常用命令详解

    Git 常用命令详解 1. Git 常用命令 1.1 常用git 命令图表汇总 1.2 配置个人信息 1.3 创建版本库 1.4 常用Git命令汇总 2. Git 解决代码冲突 3. Git 分支管理 ...

  2. Git 常用命令详解(二)

    2019独角兽企业重金招聘Python工程师标准>>> Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档 ...

  3. git config设置用户名_一个神奇的工具,实现多人协作,git常用命令详解

    git是一款开源的分布式版本控制工具,在世界上所有分布式版本控制工具中,git是最快.最简单.最流行的. git的作者是Linux之父:Linus Benedict Torvalds,当初开发git仅 ...

  4. linux 常用的git命令,git 常用命令详解

    最重要2命令: git clone git://github.com/schacon/grit.git 从服务器上将代码给拉下来 git pull 本地与服务器端同步 一. Git 命令初识 在正式介 ...

  5. Linux常用命令详解(两万字超长文)

    Linux常用命令详解 作为一枚程序员,熟练掌握一些常见的linux命令是很有必要的,掌握这些命令能帮助我们更好地管理Linux系统,提高工作效率,并有效地解决各种问题,为了方便自己后续查阅以及帮助不 ...

  6. docker常用命令详解

    docker常用命令详解 本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: Doc ...

  7. Samtools(CentOS Linux)安装及常用命令详解

    序列比对(将测序reads与已知序列信息的基因或基因组进行比对)是高通量测序数据分析中最重要的一环,无论是转录组还是重测序都是基于比对结果来进行后续各项分析的,比对结果格式比较常见的是sam和bam文 ...

  8. git checkout 命令详解—— Git 学习笔记 16

    git checkout 命令详解 概览 git checkout 这条命令的常用格式如下: 用法一 git checkout [<commit>] [--] <paths> ...

  9. NodeJs学习笔记002--npm常用命令详解

    npm 常用命令详解 npm是什么 npm install 安装模块 npm uninstall 卸载模块 npm update 更新模块 npm outdated 检查模块是否已经过时 npm ls ...

  10. git log 命令详解

    git log 命令详解 git log 命令用于查看提交历史: git log [options] [<file> <commit> <tag>...] 如果不加 ...

最新文章

  1. 移动端给img加上max-width:100%
  2. SQL中truncate table和delete的区别
  3. Python打开文件,将list、numpy数组内容写入txt文件中
  4. Spring学习(五)bean装配详解之 【XML方式配置】
  5. sql一个表中两个字段合并求和
  6. 【Elasticsearch】es如何停用节点
  7. 易学性vs易用性,产品应该选哪边?
  8. 我在软件协会修WiFi
  9. 火狐浏览器的同步问题
  10. 推荐系统算法工程师-从入门到就业
  11. 决策树分析例题经典案例_分析模型案例解析:决策树分析法
  12. 外泌体,顶刊新宠丨一文 get 研究套路!
  13. 以聚合数据为例,详细说明API接口使用方法
  14. python安装random_如何安装python randon
  15. RuntimeError: Sizes of tensors must match except in dimension 1. Got 61 and 60 in dimension 2
  16. 中国计算机学会(CCF)——推荐国际学术会议和期刊目录
  17. landlord攻略_全攻略:在卡尔加里如何当好房东-之(三)合同篇
  18. java 入门专题 字符缓冲输入流HashMap 集合的简单综合应用:文本排序
  19. DBVisualizer 中文显示乱码
  20. 以赛亚·伯林《自由论》

热门文章

  1. 全网优秀IT博客导航
  2. 【2021中国科创好公司】评选榜单重磅发布!常垒资本投资“威努特”和“捷配”入选!...
  3. Tableau技巧(一)如何做分页预览
  4. Matlab 伪彩色处理方法总结(密度分割法、灰度级变换法、频域变换法)
  5. 详解Maven下载安装及IDEA配置Maven (2023最新)
  6. Convert hex to base64
  7. Java面试必备240个知识点
  8. 虚拟机栈、堆、方法区的区别特点
  9. 运营策略实验最小样本量的确定
  10. 80句励志名言名句-用来时刻鞭策自己