第一部分:git基本操作
目录
1、git初识
1.1、存在的问题
1.2、版本控制器
1.3、git安装
1.3.1、CentOS平台
1.3.2、ubuntu平台
2、git基本操作
2.1、创建仓库
2.2、配置git
3、工作区、暂存区、版本库
4、基本操作
4.1、场景一
4.2、场景二
4.3、修改文件
5、版本回退
6、撤销修改
6.1、情况一
6.2、情况二
6.3、情况三
7、删除文件
1、git初识
1.1、存在的问题
在⼯作或学习时,经常会遇到这样的情况:
我们在编写各种⽂档时,为了防⽌⽂档丢失,更改失误,失误后能恢复到原来的版本,不得不复制出⼀个副本。⽐如:
“报告-v1”
“报告-v2”
“报告-v3”
“报告-确定版”
“报告-最终版”
.................
每个版本有各⾃的内容,但最终会只有⼀份报告需要被我们使⽤。
但在此之前的⼯作都需要这些不同版本的报告,于是每次都是复制粘贴副本,产出的⽂件就越来越 多,⽂件多不是问题,问题是:随着版本数量的不断增多,我们就不记得这些版本各⾃都是修改了什么 ,⽂档如此,我们写的项⽬代码,也是存在这个问题的。
随着版本的增多,维护好版本是很有挑战的一件事。
1.2、版本控制器
为了能够更⽅便我们管理这些不同版本的⽂件,便有了版本控制器。所谓的版本控制器,就是能让我们能了解到⼀个⽂件的历史,以及它的发展过程的系统。通俗的讲就是⼀个可以记录⼯程的每⼀次改动和版本迭代的⼀个管理系统,同时也⽅便多⼈协同作业。
⽬前最主流的版本控制器就是Git。Git可以控制电脑上所有格式的⽂件,例如doc、excel、dwg、 dgn、rvt等等。对于我们开发⼈员来说,Git最重要的就是可以帮助我们管理软件开发项⽬中的源代码⽂件。
注意:所有的版本控制系统,Git也不例外,其实只能跟踪⽂本⽂件的改动,⽐如TXT⽂件,网页,所有的程序代码等等。版本控制系统可以告诉你每次的改动,比如在第5⾏加了⼀个单词 “Linux”,在第8⾏删了⼀个单词“Windows”。 而图⽚、视频这些⼆进制⽂件,虽然也能由版本控制系统管理,但没法跟踪⽂件的变化,只能把⼆进制⽂件每次改动串起来,也就是只知道图⽚从100KB改成了120KB,但到底改了啥,版本控制系统不知道,也没法知道。
1.3、git安装
Git 是开放源代码的代码托管⼯具,最早是在Linux下开发的。开始也只能应⽤于Linux平台,后⾯慢慢的被移植到windows下,现在,Git可以在Linux、Unix、Mac和Windows这⼏⼤平台上正常运⾏了。
1.3.1、CentOS平台
安装git,以centos7.6为例:
查看是否安装了Git,以及如果安装了的话,Git的版本:
git --version
因为我是安装过的,所以结果为:
所以我先把安装过的git给卸载掉:
sudo yum remove git -y
卸载完成后,再使用git --version的时候就会出现:
接下来,我们开始下载git:
sudo yum install git -y
下载完成后,可以使用git --version来查看git是否被下载完成。
1.3.2、ubuntu平台
安装git,以ubuntu20.04为例:
sudo apt-get install git -y
卸载git:
sudo apt-get remove git -y
2、git基本操作
2.1、创建仓库
要提前说的是,仓库是进⾏版本控制的⼀个⽂件⽬录。我们要想对⽂件进⾏版本控制,就必须先创建⼀个仓库出来,这个仓库就是一个目录。
创建⼀个Git本地仓库对应的命令为:
git init
注意:命令要在⽂件⽬录下执⾏,也就是说首先要创建一个目录,然后在该目录里面使用该命令。
例如:
使用ls -al,我们发现,在当前目录下多了一个隐藏文件:
当前⽬录下多了⼀个 .git 的隐藏⽂件,.git⽬录是Git来跟踪管理仓库的,不要⼿动修改这个⽬录⾥⾯的⽂件,不然改乱了,就把Git仓库给破坏了。
我们可以使用如下命令,查看.git目录:
tree ./.git
如图所示:
2.2、配置git
当安装Git后⾸先要做的事情是设置你的用户名称和e-mail地址,这是⾮常重要的。配置命令为:
git config [--global] user.name "Your Name"
git config [--global] user.email "email@example.com"
其中--global 是⼀个可选项。如果使⽤了该选项,表⽰这台机器上所有的Git仓库都会使⽤这个配置(一台机器上是可以创建多个仓库的)。如果你希望在不同仓库中使⽤不同的name 或 e-mail ,可以不要该选项。注意的是,执⾏命令时必须要在仓库⾥。
查看配置命令为:
git config -l
删除对应的配置命令为:
git config [--global] --unset user.name
git config [--global] --unset user.email
例如:
3、工作区、暂存区、版本库
工作区:是在电脑上你要写代码或⽂件的⽬录。
暂存区:英⽂叫stage或index。⼀般存放.git目录下的index文件中,我们把暂存区有时也叫作索引(index)。
版本库:⼜名仓库,英⽂名repository 。⼯作区有⼀个隐藏⽬录 .git ,它不算⼯作区,⽽是Git的版本库。这个版本库⾥⾯的所有⽂件都可以被Git管理起来,每个⽂件的修改、删除,Git 都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
下⾯这个图展⽰了⼯作区、暂存区和版本库之间的关系:
图中左侧为⼯作区,右侧为版本库。Git的版本库⾥存了很多东西,其中最重要的就是暂存区。
在创建Git版本库时,Git会为我们⾃动创建⼀个唯⼀的master分⽀,以及指向master的⼀个指针叫HEAD。(分⽀和HEAD的概念后⾯再说)
当对⼯作区修改或新增或删除的⽂件执⾏ git add 命令时,暂存区⽬录树的⽂件索引会被更新。
当执⾏提交操作 git commit 时