Git----常用指令及基本语法
Posted wtxuebc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git----常用指令及基本语法相关的知识,希望对你有一定的参考价值。
Git三部曲:
- 工作区:存放代码的磁盘的目录
- 暂存区:得让git知道这个代码文件,因此得将工作区代码[添加](git add)到暂存区(临时存储:这时候删除也没有对应得历史版本)
- 本地库:将代码从暂存区[提交](git commit)到本地库,一旦提交到本地库,就会产生对应得历史版本,一旦产生历史版本,这个历史版本就删不掉了(后面得版本是基于前面得版本的,所以不能单独的删除前面的版本,除非你删除了整个本地库…)
Git常用指令
命令 | 作用 |
---|---|
git config --global user.name 用户名 | 设置用户签名 |
git config --global user.email 邮箱 | 设置用户签名 |
git init | 初始化本地信息 |
git status | 查看本地库状态 |
git add 文件名 | 添加到暂存区 |
git commit -m “日志信息” 文件名 | 提交到本地库 |
git reflog | 查看历史记录 |
git reset --hard 版本号 | 版本穿梭 |
签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息都能看到,以此确认本次提交是谁做的。Git首次安装必须设置一下用户签名,否则无法提交代码
而这个用户签名和登陆代码托管中心无任何关系。只是为了区分用户;
基本语法
git init
想要用git管理目录,就必须让git获取目录的管理权(初始化)
在需要让git管理的目录底下执行 git init,该目录底下会自动生成空的git库,并生成.git文件夹
在Windows底下这是隐藏文件,需要 查看->勾上隐藏文件
在Git bash进入.git可以查看到git库已经初始化好了(看隐藏文件ll -a)
git status
查看git库的状态
这个master就是我们安装时候设置的默认分支
No commits yet:没有东西提交到git库(空的git库)
nothing to commit:没有东西“可提交”(啥文件都没创建)
此时可以在.git文件里边创建文件
此时再敲入git status命令
显然,git里边依然没有东西提交,但是此时有一个可提交的文件( 还在工作区 ),还提示相关操作(git add),需要添加到暂存区,让git知道这个文件
注意:此时git还不知道这个文件,文件名是绿色的,。
git add
给暂存区添加文件,使git追踪到此文件
执行 git add 文件名
有一警告,就是安装的时候设置的LF和CRLF自动转换
再次查看状态
此时文件名已经变成绿色了,说明git已经知道这个文件了(追踪到了此文件)
此时文件在暂存区!想删除的话按照提示删除;而这个删除只是删除了暂存区的cache文件,工作区的文件还在!若又想让git追踪到文件,只需重复git add以后的操作即可;
git commit
这一步是将暂存区的文件提交到本地库(会生成历史版本:无法删除)
git commit -m “日志信息(版本信息等等)文件名”
此时再git status
原来的第二行消失了(本地库有东西了,有自己的版本号了(上上图中的5df271f))
nothing to commit说明暂存区也没文件了
git reflog
查看版本信息:版本号和[版本名称](first commit)
git log
此命令不仅可以看到版本信息,还可以看到是谁将文件上传到本地库的,还有相应时间信息,此命令看到的版本号是完整的版本号,而git reflog得到的是精简版的版本号。
注意:如果修改本地文件时,修改后,git无法追踪新文件,查看git status会提示需要git add修改后的文件,重复上述将文件添加到本地库的过程,此时版本号会多一个,而Head会指向新的master
工作区只有一个文件,修改的文件会被覆盖(底层时一个指针指向新的文件),而添到本地库后,会生成相应的历史版本,这是无法删除的;
版本穿梭
git本地库在增加版本后,head总是指向新的master(其实就是master指向新的版本号)。
此时若是新版本不如旧版本,需要重新回到旧版本,则涉及到一个版本穿梭问题;
先查看所有的版本信息
在执行 git reset --hrad 要回到的版本号
显示head指针已经指向目标版本了,此时查看版本信息( reflog )
它这个日志很详细,显示head指向目标版本
注意:版本切换后,工作区的文件将恢复到当前版本的相应文件!
参考文献
参考文献:[尚硅谷Git学习]
以上是关于Git----常用指令及基本语法的主要内容,如果未能解决你的问题,请参考以下文章