笔记三:git常用命令

一:学习内容

  1、设置用户签名:

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

  2、操作本地库:

    初始化本地库:git init
    查看本地库状态:git status
  3、操作暂存区:
    添加到暂存区:git add 文件名
    提交到本地库:git commit -m "日志信息" 文件名
  4、操作历史版本:
    查看历史记录:gitreflog
    版本穿梭:git reset --hard 版本号

 

二、设置用户签名

👉1、git首次安装好以后,需要设置一次用户签名,首次安装设置一次即可,如果你不设置自己的用户签名,那么后面我们提交代码的时候,git会报错。

👉2、签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。后面执行git log命令可以看到该信息

👉3、需要注意的是:这里设置的用户签名和将来登录github或其他代码托管中心的账号没有任何关系。

👉4、实操如下:

1 #给git客户端取个名字叫tester
2 git config --global user.name tester
3 
4 #给git客户端设置一个邮箱,一般设置真实的邮箱,不过就算是假的git也不会校验
5 git config --global user.email tester@glo.com
6 
7 #进入windows家目录下,即C:\Users\你当前使用的用户\,出现.gitconfig文件则用户签名设置成功
8 #也可以用命令看
9 cat ~/.gitconfig

命令操作结果如下:

 

三、初始化本地库

👉1、意思是用git管理一个目录,你需要让git获取这个目录的管理权

1 #在git-demo目录中,初始化本地库
2 git init
3 
4 #查看隐藏文件,在git bash中的命令和linux中命令相同
5 ll -a

命令操作结果如下:

 

四、查看本地库状态

1 #没有任何文件内容时,查看本地库状态
2 git status

命令操作结果如下:

 

1 #新增一个文件
2 #vim中非insert模式下,yy为复制,p为粘贴
3 vim hello.txt
4 
5 #再次查看本地库状态,此时会显示存在未追踪的文件
6 git status

命令操作结果如下:【红色字体:代表工作区有文件,但是没有添加到暂存区,导致git不能追踪到】

 

五、添加暂存区

暂存区: 英文 stage, 或 index,一般存放在.git目录下的index文件

 1 #添加暂存区
 2 git add hello.txt
 3 
 4 #再次查看本地库状态,此时hello.txt会由红色变成绿色,代表git已经追踪到了这个文件
 5 #此时hello.txt文件在暂存区,可以被删除,不会生成版本记录,只有提交到本地库的文件才会生成版本记录
 6 git status
 7 
 8 #可以删除暂存区的文件,工作区不会删除
 9 git re --cached hello.txt
10 
11 #再次添加暂存区
12 git add hello.txt
13 
14 #再次查看本地库状态,此时hello.txt会由红色变成绿色,代表git已经追踪到了这个文件
15 git status

命令操作结果如下:

添加暂存区:警告的意思是在暂存区,git碰到LF换行符会转换成CRLF换行符

再次查看本地库状态:此时hello.txt已经从工作区拷贝到了暂存区

删除暂存区:

再次添加暂存区,再看状态,红色变成绿色了:

 

六、提交本地库

目的是将暂存区的文件提交到本地库

 1 #提交本地库
 2 git commit -m "first commit" hello.txt
 3 
 4 #再次查看本地库状态
 5 git status
 6 
 7 #查看版本信息-引用日志信息
 8 git reflog
 9 
10 #查看版本信息-详细日志信息
11 git log

命令操作结果如下:

提交本地库:

再次查看本地库状态:
noting to commit,working tree clean:你已经提交过了,并且在你提交过以后,既没有新增也没有修改,工作树是干净的

 

查看引用日志信息:8b94833 (HEAD -> master) HEAD@{0}: commit (initial): first commit
8b94833为精简版本号,是完整版本号的前7位数字
(HEAD -> master)为当前指针指向master
first commit为提交的版本,即第一次提交的版本

 

查看版本信息:
不仅能看到完整版本号、提交的版本还可以看到谁提交的这个版本
tester <tester@glo.com>:谁提交的这个版本,这就是我们之前设置的用户签名,在这里被用到了

 

七、修改文件

目的是修改文件,修改文件添加到暂存区并提交到本地库,如果多次操作则在本地库中会生成多条版本记录,而工作区始终只有一个文件显示的指针指向的版本的内容。

 1 #修改文件,只改一行数据
 2 vim hello.txt
 3 
 4 #然后查看本地库状态,会提示你文件被修改了,并且文件变成了红色,说明文件还没有添加到暂存区
 5 git status
 6 
 7 #添加暂存区
 8 git add hello.txt
 9 
10 #提交本地库
11 git commit -m "second commit" hello.txt
12 
13 #再次查看本地库状态,发现本地库又干净了
14 git status
15 
16 #再次查看版本信息-引用日志信息,发现有两个版本,并且指针指向的是第二个版本的信息,也就是修改后的文件
17 #而工作区的hello.txt文件则永远只有一个文件,显示的内容是当前指针指向的版本内容。也就是工作区显示一个版本,版本管理工作交给git本地库里来管理
18 git reflog
19 
20 #再次查看版本信息-详细日志信息
21 git log
22 
23 #查看工作区文件内容,应该显示的指针指向的版本,即修改后的文件。
24 #这里查看的内容即为磁盘E:\GitSpace\git-demo\hello.txt的文件内容
25 cat hello.txt

命令操作结果如下:

修改文件并查看本地库状态:

 

添加暂存区并查看本地库状态:

 

提交本地库:
1 file changed, 1 insertion(+), 1 deletion(-):一个文件被修改,增加了一行,删除了一行
我明明只修改了一行,为什么要说我新增了一行和删除了一行呢?这是因为git是对行管理的,修改一行它实际的操作是先删除掉这行,然后把你修改的那一行新增进来,所以变成了一行新增一行删除

 

再次查看本地库状态:又干净了

 

再次查看版本信息:发现有两个版本了
dbb4e24 (HEAD -> master) HEAD@{0}: commit: second commit:说明指针指向的是第二个版本

 

查看文件内容:应为指针指向的版本内容,如现在是指向第二个版本则为修改后的文件效果

 

八、查看版本信息

可以看到这个项目一共发布了多少个版本,每个版本的发布时间,以及版本号,每个版本的提交者

1 #查看精简版本信息
2 git reflog
3 
4 #查看详细版本信息
5 git log

命令操作结果如下:

 

九、版本穿梭

git版本穿梭,底层其实是移动HEAD指针

git做版本控制,并不是拷贝粘贴给你造很多个副本,而是在本地库的内存里,记录了很多版本信息,然后通过指针来指向不同的版本

1 #查看精简版本号,拷贝版本号
2 git reflog
3 
4 #穿梭到指定版本
5 git reset --hard 要穿越的版本号

命令执行结果如下:

版本穿梭:穿到历史版本

 

此时本地工作区的hello.txt将会显示指针指向的那个版本的内容,即第1个版本的内容:

 

 

 

再次穿梭:穿梭到第3个版本

 

此时本地工作区的hello.txt将会显示指针指向的那个版本的内容,即第3个版本的内容:
cat hello.txt查看的内容就是磁盘E:\\GitSpace\\git-demo路径下的hello.txt的内容

 

posted @ 2023-03-11 20:16  秒秒开心  阅读(107)  评论(0编辑  收藏  举报