Git基本操作(1)
- 初始化git本地仓库
- git本地仓库配置
- git config user.name 和git config user.email
- git config --unset user.name和git config --unset user.email
- git config --global
- 认识工作区,暂存区,版本库
- 更深层次理解
- git add + 文件名
- git commit -m "描述信息"
- git log 查看日志信息
前面我们配置了git还有远程仓库,今天我们来了解一下git的基本操作。
初始化git本地仓库
首先,我们在装好git之后,我们就要初始化一个git仓库,我们可以用命令行git init来初始化一个git本地仓库,首先我们创建一个文件夹:
我们进入到gitcode文件夹,使用git init命令:
我们查看隐藏文件,发现如果出现 .git,就表明我们成功创建了一个git的本地仓库。
我们看看这个.git下有哪些文件:
这下面的文件都是非常重要的,不要轻易修改。
git本地仓库配置
git config user.name 和git config user.email
我们有了本地仓库之后,我们可以对我们的这个本地仓库进行一个基础的配置——配置邮箱和用户名:
我们可以先用git config -l查看我们当前的配置:
我们可以为当前的本地仓库设置专属的用户名和邮箱,使用git config user.name “Your name” 和
git config user.email “Your email” :
我们发现下面两行就是这个仓库的专属的邮箱和用户。
git config --unset user.name和git config --unset user.email
此时如果我们想取消这个邮箱和用户,我们可以使用git config --unset user.name,git config --unset user.email解除当前的git仓库的用户和邮箱:
git config --global
如果我们一台机器上的所有的本地仓库都会往一个用户和邮箱去提交,我们可以把这个设置成全局的,只需要带上–global:
git config [--global] user.name "Your Name"
git config [--global] user.email "email@example.com"
取消设置也是一样的:
git config [--global] --unset user.name
git config [--global] --unset user.email
认识工作区,暂存区,版本库
现在我们在gitcode这个文件夹下创建一个文件:
我在gitcode下创建了一个My_file的文件,好了,现在的问题是这是候git可以管理这个文件吗?答案是不行。
其实,我们这个gitcode下的这个隐藏的.git文件就是我们的版本库,什么叫版本库呢?其实很简单,就是我们可以通过git对我们文件的修改进行跟踪,而跟踪的结果会由这个.git的隐藏文件进行管理。
好了现在我们了解了工作区,我们还得清楚一个概念——工作区。
什么叫工作区呢?说的直白一点,就是一个包含.git文件的文件夹,比如我的gitcode这个文件夹包含了.git,这个时候,我的gitcode就是一个工作区,我在gitcode这个工作区创建了My_file文件。
如果我们想让git管理My_file文件,我们就要让My_file文件进入到版本库中,但是请注意,我们不能直接在.git文件夹下创建文件,这是绝对不允许的。那我们应该怎么办呢?我们先来看一张图:
通过这张图,我们大概知道,首先我们要进行add操作让文件进入stage(暂存区index)然后再用commit操作把文件交到master分支,才算把文件交到了版本库中。这时候git才能管理这个文件。
更深层次理解
其实我们除了上面的三个板块,我们还有一个板块叫对象库:
我们工作区的任何改动会交到这个对象库中,然后暂存区储存的不是真实的对象,而是指针,指针会指向对象库中对象:
然后commit操作会把暂存区中东西接到master分支中(通过HEAD指针),同时master上也有指向对象库中对象的指针:
这样git可以对我们的文件进行管理了。
我们可以把.git文件的结构看看,对应我们所说的部分。
我们好像没有看到暂存区的部分,那是因为我们这个git仓库是新建的,还没有进行任何的add,commit操作,暂时还不会显示出来,我们可以把我们的My_file文件上交一下:
这下我们看到了暂存区了。
git add + 文件名
之前铺垫这么多,这下可以讲一下git的操作了,我们先来我们最熟悉的一个git add +文件名比如我想把My_file上交:
后面也可以接多个文件名:
也可以git add .,这里这个点的意思就是把当前文件夹下所有修改过的文件都交到暂存区中:
git commit -m “描述信息”
我们在add之后,就要把文件交到master上,这步的操作是git commit -m “描述信息”,这里的-m + “描述信息”,不能省,这里我们-m就是日志信息,对于我们进行版本控制非常重要。
git log 查看日志信息
我们可以用git log查看日志信息:
我们看到commit的后面有一串字符串,这个是上交时的关键信息,也是进行版本控制的重要信息。
如果嫌弃这么多的信息过于累赘,我们可以带上选项 –pretty=oneline: