git使用——4.git命令行基本操作
文章目录
一、进入git bash
右键-》git bash here

git专属的命令都是以git开始的,git是主命令,而status是子命令,带参数的一般是-或者是–
二、操作测试
2.1 初始化git仓库(如果你要使用git功能请不要随意修改它,当然如果你的该项目不想使用git功能,删掉.git文件夹即可)
git init

初始化之后,可以查看一下隐藏文件夹,有两种方式
第一种:(继续在git bash窗口执行指令)
ls -al

然后你就可以打linux指令进去了

第二种:


结果如下,自己可以点进去看里面是啥了

2.2 设置签名
- 形式
这里登陆你就用登录的用户名或者是邮箱。 - 作用:区分不同开发人员的身份
- 辨析:这里设置的签名和登录远程库(代码托管中心)的账号、密码没有任何关系。
用户名:测试用用户名
邮箱地址:测试用邮箱地址
账号密码:测试用账号密码
2.2.1 项目/仓库级别:(仅在当前本地库范围内有效)
git config user.name 测试用用户名
git config user.email 测试用邮箱地址
git config user.password 测试用账号密码
由于我已经进入了.git文件夹,所以直接cat config查看是否成功保存了

2.2.2 系统用户级别:(登录当前操作系统的用户范围)
这个“”我觉得可以加可不加,英文模式记得切换字符
git config --global user.name "测试用户"
git config --global user.password 测试密码
git config --global user.email 测试邮箱

查看你输入的账号密码存到哪里去了,进入home目录
cd ~
pwd
ls -al
cat .gitconfig



2.2.3 如果打错用户名/密码了不要惊慌失措,这里提供两种方案给你
第一种:
git config user.name 测试用用户名改
cat config
再打一次,查看是否成功

第二种:
git config --global --replace-all user.name 修改后用户
cat .gitconfig

2.2.4 级别优先级
- 就近原则:项目级别优先于系统用户级别,二者都有时采用项目级别
的签名 - 如果只有系统用户级别的签名,就以系统用户级别的签名为准
- 二者都没有不允许
2.3 基本操作
2.3.1 查看状态
git status

2.3.2 添加至缓存区
创建一个1.txt,里面随便写点东西,开始add一下吧
git add [file name]

这个时候在看一下状态,暂存区有数据了是吧

2.3.3 删除缓存区数据
git rm --cached <file>

这个时候再看一下状态,track代表追踪,说明我们的这个1.txt没有被追踪到

2.3.4 提交(这里需要先add到缓存区)
一个文件,第一次需要add,在commit,第二次修改文件后可以直接commit,但是不建议这么做因为跳过了缓存区操作,无法撤回了,缓存区存在的意义就是让你可以撤回的。
git commit -m "commit message" [file name]
这里在看看状态,就知道已经搞定了。

2.3.5 日志记录
你提交几次修购后数据即可看到情况
git log

如果你的历史记录足够多的话,那么就会变成这样。
按空格,向下;
按b,向上;
按q,退出。如果有点卡按了q没即时反应没事的,等等就好

下面这里是精简了上面那个日志,方便我们日常观看,但是这个前面的hash值太长了吧,如果要使用的话没那么好吧
git log --pretty=oneline

这里是精简版日志
git log --oneline

这里是多一个指针的,方便我们回退版本,可以看到要退几步,很方便
git reflog

2.3.5.1 版本控制
本质:就是把当前版本的指针指到其他位置去
大概就是下图这样,这个指针可以调动

2.3.5.1.1 基于索引值(推荐)
这里可以根据hash值直接回调到对应的版本,很方便的
git reset --hard [局部索引值]

2.3.5.1.2 使用^
这里只能后退,一个^后退一次,n个 ^ 后退n个版本
git reset --hard HEAD^

2.3.5.1.3 使用~
这里也只能后退,这里的n代表退后几个版本
git reset --hard HEAD~n

2.3.5.2 reset命令的三个参数对比
2.3.5.2.1 --soft参数
git reset --soft [局部索引值]

本质:指针原本在上面的,但是现在移动了,但是只有本地库向前移动了,暂存区和工作区都没有移动。仅仅在本地库移动指针

2.3.5.2.2 --mixed参数
git reset --mixed [局部索引值]

本质:指针原本在上面的,现在移动了本地库和重置了暂存区,但是工作区的没有移动。现在工作区的内容还没有add上去

2.3.5.2.3 --hard参数
git reset --hard [局部索引值]

本质:移动了本地库,暂存区和工作区被重置了。

2.3.6 删除文件后想要恢复(前置条件:文件要先提交过git)
前置条件:文件要先提交过git,git本地库历史版本中存在对应的版本。
操作说明:
如果删除文件操作已经提交到git本地库(存在删除文件的版本了),可以通过历史记录回复
git reset --hard [局部索引值]
如果删除文件操作只是提交到暂存区,那么可以这么做,这里的head可以大写,小写也ok
git reset --hard head
2.3.7 文件比较
将工作区和暂存区的文件进行比较
git diff [文件名]

将工作区和历史版本的文件进行比较
git diff [本地库中的历史版本] [文件名]

git diff
不带文件名,比较多个文件

终:备注
简单的复制输出内容
这里复制只需要鼠标选中框内内容即可,选中即可右键黏贴

查询不认识的指令
输入之后,等待一下,会有页面弹出来,这里你可以使用谷歌浏览器自带的翻译,翻译之后去使用即可,这是一个本地文档哦!
git help 需要查询的指令



部分英文说明
index file暂存区,working tree工作区。还有你输入指令后的输出结果跟你安装时选择的选项密切相关,所以安装时请不要乱来哦!
更多推荐
所有评论(0)