Git命令行操作的本地库操作

158 阅读4分钟

1 本地库初始化

1.1命令:

git init

1.2效果:

image.png image.png

1.3注意事项:

.git目录中存放的是本地库相关的子目录的文件,不需要对其做操作

2 设置签名

2.1形式

用户名:Tom

Email地址:goodMorning@atguigu.com

2.2作用

区分不同开发人员的身份

2.3辨析

这里设置的签名和登陆的远程库(代码托管中心)的账号,密码没有关联

2.4命令

2.4.1项目级别/仓库级别:仅在当前本地库范围内有效

git config user.name Tom_pro
git cnnfig user.email goodMorning_pro@atguigu.com

image.png

2.4.2系统用户级别:登录当前操作系统的用户范围

git config --global user.name Tom_glb
git config --global user.email goodMorning_glb@atguigu.com

image.png

2.4.3级别优先级

就近原则:项目级别优先于系统用户级别,二者都有时采用项目级别的签名

如果只有系统用户级别的签名,就以系统用户级别的签名为准

不允许二者都没有

2.5选择

通常就设置一套系统用户级别的签名,所有项目都可以用这一套签名,若有个别项目有特殊需求,也可以再单独设置一个项目级别的签名

3 基础操作

3.1状态查看

查看工作区、暂存区的状态

git status

image.png

运行以后出来3句话

第一句代表我们现在所处的位置是在master这个分支上(也可以叫主干)

第二句的意思是没有已经提交的文件,其实是指本地库里面还没有任何内容

第三句话的意思是没有什么可提交的,是指暂存区里也还没有任何内容

可用vim编辑器编辑一个文本

vim demo.txt

3.2添加操作

将工作区的新建/修改添加到暂存区

git add [file name]
git add demo.txt

如果想撤回已经上传到暂存区的文件到工作区,可使用以下命令

git rm --cached [file name]
git rm --cached demo.txt

3.3提交操作

将暂存区的内容提交到本地库

git commit -m "commit message" [file name]
git commit -m "My first commit.new file demo.txt" demo.txt

其中,commit message就相当于注释,便于以后查看时明白此次提交的相关信息

这里的文件又分新建和修改,若是新建,必须先git add,再git commit;但若是之前已经追踪过的文件即是修改文件,可以直接git commit,但是这样就直接提交到本地库了,不能再撤回进行修改。

3.4查看历史记录

3.4.1

git log

是最完整的形式

其多屏显示控制方式为:空格向下翻页,b向上翻页,q退出

image.png

3.4.2

git log --pretty=oneline

image.png

3.4.3

git log --oneline

只能显示当前版本及以前的历史版本

image.png

3.4.4

git reflog

当前版本之前和之后的历史版本都可以显示 image.png 其中,HEAD@{num},num代表移动到当前版本需要的步数

3.5历史版本的前进后退

3.5.1本质

有一个叫做HEAD的指针,会指向当前的版本,移动这个指针就可以实现版本的前进后退

3.5.2基于索引值操作【推荐】

git reset --hard [局部索引值]

image.png

3.5.3使用^符号:只能后退

git reset --hard HEAD^

注:一个^表示后退一步,n个^表示后退n步

3.5.4使用~符号:只能后退

git reset --hard HEAD~n

注:表示后退n步

3.6reset命令的三个参数对比

--soft参数

仅仅在本地库移动HEAD指针

--mixed参数

在本地库移动HEAD指针;重置暂存区

--hard参数

在本地库移动HEAD指针;重置暂存区;重置工作区

3.7删除文件并找回

前提:删除前,文件存在时的状态提交到了本地库

git reset --hard[指针位置]

若删除操作已经提交到本地库:指针位置指向历史记录(有要找回的文件的历史记录)

若删除操作尚未提交到本地库:指针位置使用HEAD

3.8比较文件差异

git diff [file name]

是将工作区中的文件和暂存区进行比较

git diff [本地库中的历史版本] [file name]

是将工作区中的文件和本地库历史记录进行比较

如果不带文件名,可以比较多个文件

4 分支管理

(下篇文章再补上,今天先写到这里吧)

参考链接:【尚硅谷】Git与GitHub基础全套完整版教程(快速上手,一套搞定)_哔哩哔哩_bilibili