我们接下来要学习以下知识
Git 是一个开源的分布式版本控制系统,用于有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的。
版本控制器是一种用于跟踪文件和代码更改的软件。它允许您保存项目的不同版本,并在需要时回滚到以前的版本。版本控制器对于软件开发、文档管理和其他需要跟踪更改的项目非常有用。
Git 是目前最流行的版本控制系统之一。它具有以下优势:
分布式:Git 是分布式的,这意味着每个用户都拥有完整的代码库。这使得 Git 非常适合多人协作。
高效:Git 非常高效,可以快速处理大量文件的更改。
灵活:Git 非常灵活,可以用于各种类型的项目。
1.检查是否安装git
git --version
2.安装git的命令
sudo yum install git -y
最终安装完成就是如下:
说白了初始化仓库就一条命令的事情。
git init
然后我们进入该目录下,查看git的目录结构
大家不要手动改里面的文件内容,不然就会破坏仓库,如果大家感兴趣,可以去探索者其中的奥秘。
当安装 Git 后?先要做的事情是设置你的 ??名称 和 e-mail 地址,这是?常重要的。
如何配置本地仓库呢?
其实就是两条命令的事情
git config user.name "你的名字"
git config user.config "你的邮箱"
git config -l 查看配置命令。
既然有增加配置文件的命令,就有删除配置文件的命令
git config --unset user.email
git config --unset user.name
我们还可以设置全局的配置,这代表每一个创建的仓库,我们都会应用这个设置。
git config --global user.name "你的名字"
git config --global user.config "你的邮箱"
git config -l
当然我们删除的时候,必须加全局参数的话。删除无效。
知道如何配置操作之后,我们还需要了解Git代码仓库的管理流程,它由什么组成,它由
工作区,暂存区,版本库组成。这是它的核心概念,我现在来具体解释一下这个几个名词。
**工作区:**是您实际工作的地方,存放着您正在修改的文件。
**暂存区:**是 Git 用来存放您对工作区文件的修改的临时区域。?般存放在 .git ?录下的 index ?件(.git/index)中,我们把暂存区有时也叫作索引(index)。
**版本库:**是 Git 用来存放所有提交过的文件的永久存储区域。又名仓库,英文名 repository 。工作区有一个隐藏目录 .git ,它不算工作区,而是 Git 的版本库。这个版本库里面的所有文件都可以被 Git 管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
下面我用一张图来表示这三个之间的关系。
知道了,我们git内部的结构之后,我们就可以想一下,我们日常提交代码的流程是怎么样?我用一张图来说明。
1.第一步我们新建文件,相当于往工作区新增了文件
2.第二步,我们使用 git add 命令将修改文件 添加到暂存区
3.第三步 git commit 命令将暂存区中的文件提交到版本库
我们如果想用Git管理文件的话,基本的流程就跟我画的流程图是一模一样的。
1.创建新文件
touch file1 file2 file3
2.向暂存区增加文件
git add file1 file2 file3
3.向暂存区的文件增加到版本库
git commit -m "增加三个文件操作"
git commit 命令执?成功后会告诉我们,3个?件被改动。
截??前为?,我们已经更够将代码直接提交?本地仓库了。我们可以使? git log 命令,来查看
学习到这?,我们已经清楚了如何向仓库中添加?件,并且对于?作区、暂存区、版本库也有了?定的认识。那么我们再展??种添加?件的场景,能加深对?作区、暂存区、版本库的理解。
[root@VM-16-7-centos gitcode]# touch file4
[root@VM-16-7-centos gitcode]# git add file4
[root@VM-16-7-centos gitcode]# touch file5
[root@VM-16-7-centos gitcode]# git commit -m "add file"
[master cd5a845] add file
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 file4
显然知识推送到一个文件到版本库中,因为我们一开始只把file4加入了暂存区。
这里要要跟大家补充一句,Git管理的从来不是文件,而是修改。为什么这么说呢?
我们进行一个小案例的操作
1.对一个文件进行修改
vim ReadMe
2.查看修改前和修改后的状态。
先查看我们代码仓库的状态
git status // 查看我是否对文件进行了操作
这里显示我对本地文件进行了操作,我们还有一个命令可以查看我们修改的内容是什么。
git diff ReadMe
3.最后提交文件
我们通过查看修改前和修改后的内容之后,就可以放心的提交到版本库当中了。
我假设我们做了一个设计文档,我们已经改过很多版本了,结果我的老板突然告诉我想要最开始的第一版,这个时候怎么办呢?
我们就可以通过Git的一个命令来回退到合适的版本。
git reset --hard <commit_id> 将工作区和暂存区回退到指定的版本。
git revert <commit_id> 将指定的版本的修改恢复到工作区,但不影响暂存区。
git checkout <commit_id> 将工作区回退到指定的版本,包括暂存区。
用一张图来说明
接下来我们再来做一个案例
1.cat ReadMe
2.查看修改记录日志
git log --pretty=oneline
这里通过查找修改的日志,根据前面出现的类似于一字母和数组组合的索引,去回退对应的版本
3.回退到第三次修改的版本
我们这里选择的索引是第三次的修改的版本。
我们撤销操作跟退出操作不同,撤销是回到指定的上一步操作,我这里特地列了三种情况。
情况一:对于工作区的代码,还没有add=》只在工作区操作过
情况二:已经add,但没有commit =》工作区和暂存区操作了。
情况三:已经add,并且也commit了=》已经在工作区和暂存区和版本库里面操作了
针对这三种情况我们提供了不同的撤销方案。
我会举一些例子来说明这三种情况
例子一:对于工作区的代码,还没有add
例子二:已经add,但没有commit =》工作区和暂存区操作了。
1.使用 git add README.md 命令将 README.md 文件添加到暂存区。
2.使用 git status 命令查看工作区中的文件状态。
例子三:已经add,并且也commit了=》已经在工作区和暂存区和版本库里面操作了
在git中删除操作也是修改操作,就比如你删除了一个文件,你觉的你删除了,但实际上并没有删除,我们来举一个例子,大家就明白了。
这里先说明一个删除的问题。
Git 如何处理已删除文件的问题。在 Git 2.0 之前,git add 默认会忽略已删除文件。这意味着,如果您使用 git add 添加一个已删除的文件,Git 将不会将该文件添加到索引中。
在 Git 2.0 中,git add 将默认包括已删除文件。这意味着,如果您使用 git add 添加一个已删除的文件,Git 将将该文件添加到索引中,并将其标记为已删除。
在您提供的示例中,您使用 git add 添加 file1,但 file1 已从您的工作目录中删除。Git 因此警告您,在 Git 2.0 中,git add 将默认包括已删除文件。
所以我们换一个操作。
git rm file2 =》要删除的文件
git commit -m "" =》提交到版本库
以上就是删除流程。
Git 的删除操作分为工作区删除、暂存区删除和版本库删除三个部分。工作区删除是指将文件从工作区中删除,暂存区删除是指将文件从暂存区中删除,版本库删除是指将文件从版本库中删除。