【Git开发教程 一】

1,809 阅读13分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。


上篇文章对Git的一些基本概念进行了介绍,包括Git的发展史、协同开发的流程等等,本篇文章将对Git的一些基本指令做一个讲解。


本地库初始化

假设我现在要开发一个项目,首先得在本地进行开发,我在桌面创建了一个Crawler文件夹,然后进入到文件夹,右击鼠标,打开Git Bash: 在这里插入图片描述 文件夹没有任何内容,此时我们在终端里输入一条指令:

git init

运行结果: 在这里插入图片描述 意思是在该目录下创建了一个空的Git仓库,需要注意的是.git目录中存放的是本地库相关的子目录和文件,不要删除,也不要进行修改,默认是隐藏的。


设置Git签名

Git为了区分不同开发人员的身份,需要开发人员提供自己的唯一标识,即:用户名和邮箱。

Git签名分为两种情况:

  1. 项目级别签名
  2. 系统级别签名

项目级别签名,顾名思义,其签名仅在当前本地库范围内有效; 系统级别签名在当前操作系统的当前用户范围内均有效,即:该用户创建的仓库都可使用该签名。

它们之间的优先级遵循就近原则: 项目级别签名优于系统级别签名,二者如果都设置了就采用项目级别签名; 如果只设置了某个级别的签名,那就采用该签名; 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的三大分区:

  1. 工作区:该区即是工作的区域,直接编辑的文件会放在工作区
  2. 暂存区:暂存区是数据暂时存放的地方,暂存区提供了开发者一个反悔的机会,倘若添加了错误的内容,就可以通过一些手段还原
  3. 版本区:隐藏目录.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行内容被添加。


上篇文章对Git的一些基本概念进行了介绍,包括Git的发展史、协同开发的流程等等,本篇文章将对Git的一些基本指令做一个讲解。

本地库初始化

假设我现在要开发一个项目,首先得在本地进行开发,我在桌面创建了一个Crawler文件夹,然后进入到文件夹,右击鼠标,打开Git Bash: 在这里插入图片描述 文件夹没有任何内容,此时我们在终端里输入一条指令:

git init

运行结果: 在这里插入图片描述 意思是在该目录下创建了一个空的Git仓库,需要注意的是.git目录中存放的是本地库相关的子目录和文件,不要删除,也不要进行修改,默认是隐藏的。


设置Git签名

Git为了区分不同开发人员的身份,需要开发人员提供自己的唯一标识,即:用户名和邮箱。

Git签名分为两种情况:

  1. 项目级别签名
  2. 系统级别签名

项目级别签名,顾名思义,其签名仅在当前本地库范围内有效; 系统级别签名在当前操作系统的当前用户范围内均有效,即:该用户创建的仓库都可使用该签名。

它们之间的优先级遵循就近原则: 项目级别签名优于系统级别签名,二者如果都设置了就采用项目级别签名; 如果只设置了某个级别的签名,那就采用该签名; 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的三大分区:

  1. 工作区:该区即是工作的区域,直接编辑的文件会放在工作区
  2. 暂存区:暂存区是数据暂时存放的地方,暂存区提供了开发者一个反悔的机会,倘若添加了错误的内容,就可以通过一些手段还原
  3. 版本区:隐藏目录.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行内容被添加。


尾语

✍ 用 Code 谱写世界,让生活更有趣。❤️

✍ 万水千山总是情,点赞再走行不行。❤️

✍ 码字不易,还望各位大侠多多支持。❤️