【Git】常用命令详解(循序渐进,逐步分析)
目录
一、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】常用命令详解(循序渐进,逐步分析)相关推荐
- Git 常用命令详解
Git 常用命令详解 1. Git 常用命令 1.1 常用git 命令图表汇总 1.2 配置个人信息 1.3 创建版本库 1.4 常用Git命令汇总 2. Git 解决代码冲突 3. Git 分支管理 ...
- Git 常用命令详解(二)
2019独角兽企业重金招聘Python工程师标准>>> Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档 ...
- git config设置用户名_一个神奇的工具,实现多人协作,git常用命令详解
git是一款开源的分布式版本控制工具,在世界上所有分布式版本控制工具中,git是最快.最简单.最流行的. git的作者是Linux之父:Linus Benedict Torvalds,当初开发git仅 ...
- linux 常用的git命令,git 常用命令详解
最重要2命令: git clone git://github.com/schacon/grit.git 从服务器上将代码给拉下来 git pull 本地与服务器端同步 一. Git 命令初识 在正式介 ...
- Linux常用命令详解(两万字超长文)
Linux常用命令详解 作为一枚程序员,熟练掌握一些常见的linux命令是很有必要的,掌握这些命令能帮助我们更好地管理Linux系统,提高工作效率,并有效地解决各种问题,为了方便自己后续查阅以及帮助不 ...
- docker常用命令详解
docker常用命令详解 本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: Doc ...
- Samtools(CentOS Linux)安装及常用命令详解
序列比对(将测序reads与已知序列信息的基因或基因组进行比对)是高通量测序数据分析中最重要的一环,无论是转录组还是重测序都是基于比对结果来进行后续各项分析的,比对结果格式比较常见的是sam和bam文 ...
- git checkout 命令详解—— Git 学习笔记 16
git checkout 命令详解 概览 git checkout 这条命令的常用格式如下: 用法一 git checkout [<commit>] [--] <paths> ...
- NodeJs学习笔记002--npm常用命令详解
npm 常用命令详解 npm是什么 npm install 安装模块 npm uninstall 卸载模块 npm update 更新模块 npm outdated 检查模块是否已经过时 npm ls ...
- git log 命令详解
git log 命令详解 git log 命令用于查看提交历史: git log [options] [<file> <commit> <tag>...] 如果不加 ...
最新文章
- 移动端给img加上max-width:100%
- SQL中truncate table和delete的区别
- Python打开文件,将list、numpy数组内容写入txt文件中
- Spring学习(五)bean装配详解之 【XML方式配置】
- sql一个表中两个字段合并求和
- 【Elasticsearch】es如何停用节点
- 易学性vs易用性,产品应该选哪边?
- 我在软件协会修WiFi
- 火狐浏览器的同步问题
- 推荐系统算法工程师-从入门到就业
- 决策树分析例题经典案例_分析模型案例解析:决策树分析法
- 外泌体,顶刊新宠丨一文 get 研究套路!
- 以聚合数据为例,详细说明API接口使用方法
- python安装random_如何安装python randon
- RuntimeError: Sizes of tensors must match except in dimension 1. Got 61 and 60 in dimension 2
- 中国计算机学会(CCF)——推荐国际学术会议和期刊目录
- landlord攻略_全攻略:在卡尔加里如何当好房东-之(三)合同篇
- java 入门专题 字符缓冲输入流HashMap 集合的简单综合应用:文本排序
- DBVisualizer 中文显示乱码
- 以赛亚·伯林《自由论》