上篇文章对Git的一些基本概念进行了介绍,包括Git的发展史、协同开发的流程等等,本篇文章将对Git的一些基本指令做一个讲解。
本地库初始化
假设我现在要开发一个项目,首先得在本地进行开发,我在桌面创建了一个Crawler文件夹,然后进入到文件夹,右击鼠标,打开Git Bash:
文件夹没有任何内容,此时我们在终端里输入一条指令:
git init
运行结果:
意思是在该目录下创建了一个空的Git仓库,需要注意的是.git目录中存放的是本地库相关的子目录和文件,不要删除,也不要进行修改,默认是隐藏的。
设置Git签名
Git为了区分不同开发人员的身份,需要开发人员提供自己的唯一标识,即:用户名和邮箱。
Git签名分为两种情况:
- 项目级别签名
- 系统级别签名
项目级别签名,顾名思义,其签名仅在当前本地库范围内有效;
系统级别签名在当前操作系统的当前用户范围内均有效,即:该用户创建的仓库都可使用该签名。
它们之间的优先级遵循就近原则:
项目级别签名优于系统级别签名,二者如果都设置了就采用项目级别签名;
如果只设置了某个级别的签名,那就采用该签名;
Git规定必须设置一个某级别的签名,不允许两者都不设置。
下面看指令,对于项目级别签名,设置指令如下:
git config user.name 用户名
git config user.email 邮箱
对于系统级别签名,设置指令有些许不同:
git config --global user.name 用户名
git config --global user.email 邮箱
注意这里的用户名和签名可以随意设置,你甚至可以设置一个不存在的邮箱,它仅仅是作为一个标识。
这里我先设置一下项目级别签名,输入如下指令:
git config user.name blizzawang
git config user.email blizzawang@163.com
设置完后,我们找到.git目录下的config文件:
打开该文件:
这就是刚刚我们设置的签名,所以我们千万不要去动.git目录下的东西。
我们再来设置系统级别签名,输入如下指令:
git config --global user.name blizzawang_glb
git config --global user.email blizzawang_glb@163.com
设置完成后,它同样有地方保存,只不过这次不是保存在项目中了,而是保存在用户目录下:
打开该文件:
这就是我们刚刚设置的系统签名。
添加、查看状态、提交操作
下面来介绍一些具体的操作指令,通常添加、查看状态、提交操作是我们开发过程中使用较为频繁的三大操作。
我先执行以下查看状态指令:
git status
运行结果:
- On branch master:表示我们目前处在master分支上,关于分支的概念后面会详细介绍
- No commits yet:没有任何的提交,表示本地库中没有任何的提交
- nothing to commit:没有什么可提交,表示暂存区没有什么可提交的东西
说到这里,就需要介绍一下Git的三大分区:
- 工作区:该区即是工作的区域,直接编辑的文件会放在工作区
- 暂存区:暂存区是数据暂时存放的地方,暂存区提供了开发者一个反悔的机会,倘若添加了错误的内容,就可以通过一些手段还原
- 版本区:隐藏目录.git就是版本区,版本区中存放了很多东西, 其中的index文件即为暂存区
下面我在工作区创建一个test.txt文件:
再次执行查看状态操作:
git status
运行结果:
因为我们只是创建了文件,还没有进行任何操作,所以目前仍然处于master分支;本地库中仍然没有任何的提交。
但要注意下面的内容了:
Untracked files:
(use "git add <file>..." to include in what will be committed)
test.txt
nothing added to commit but untracked files present (use "git add" to track)
这里的意思是并没有提交任何东西但是发现了一个未追踪的文件,这个文件就是刚才创建的test.txt。
既然未追踪,那么我们就通过指令追踪到该文件:
git add test.txt
追踪完成后,我们再次执行查看状态操作:
git status
运行结果:
目前本地库仍然没有任何提交,但是下面有一个新的文件改变可以被提交,还有一段提示:
(use "git rm --cached <file>..." to unstage)
这里提示我们可以使用该指令进行撤回,即:我们通过git add 指令追踪到文件,也就是将文件放入了暂存区,这时候,我要想反悔,我就可以通过该指令将刚才放入暂存区的文件撤回来,执行指令:
git rm --cached test.txt
撤回后,我们重新查看一下状态:
下面我们重新将test.txt文件放入到暂存区,执行指令:
git add test.txt
添加到暂存区后,我们就可以提交了,执行如下指令将暂存区的内容提交到本地库:
git commit test.txt
执行该指令后终端切换到了如下界面:
这里是需要你输入对这次提交的一个描述,可以写这次提交做了些什么,实现了哪些功能,利于后期维护。
在进行Git安装的时候,我们就设置了Git终端默认使用的编辑器为Vim,所以这里肯定就是Vim编辑器了,我们按i
键进入编辑模式,然后在第一行输入这次提交的描述:
按i
键后左下角会显示–插入–,此时就可以开始编辑了。
编辑完成后,按esc
键退出编辑模式,然后按组合键Shift + :
,此时输入指令:wq
,保存并退出,这次提交就完成了。
这里面也有一些信息,后面再具体解释。
此时我们再次查看状态:
此时表示暂存区是干净的,没有什么可提交的,工作区也没有任何状态的修改。
这样就走了一遍从添加、查看状态到提交的过程:先是通过git add指令将工作区的内容添加到暂存区,然后通过git commit指令将暂存区的内容提交到版本区。
我们继续看一个场景,刚才创建的是一个空文件,下面我们在该文件中添加一点文字内容:
此时我们再次查看状态:
此时表示发现了一个没有添加到暂存区的修改,看最后一行提示:
no changes added to commit (use "git add" and/or "git commit -a")
意思是说你可以先执行git add指令,再执行git commit指令进行提交,你也可以直接执行git commit指令进行提交,因为这个文件在前面其实已经被追踪了。
这里我直接使用git commit指令进行提交,同样要添加这次提交的描述,但是每次都要进入Vim编辑器添加描述未免过于麻烦,其实Git提供了更加优雅的提交方案,执行如下指令:
git commit -m "第二次提交 修改了test.txt的文件内容" test.txt
提交结果:
结果表示一个文件被修改,1行内容被添加。
转载:https://blog.csdn.net/qq_42453117/article/details/104279967