Git入门--版本的提交以及回滚的基本命令

跳过下载安装直入正题

一、初始化配置

1.打开gitbash 输入 git不报错表示安装成功 输入如下命令配置用户名和邮箱:

git config --global user.name "Your user name"

git config --global user.mail "Your Email"

注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

2.接着创建一个仓库

例如在D盘创建一个Test文件夹作为仓库 gitbash中 cd命令进入Test文件夹:


3.进入仓库(Test)目录后使用git init 命令初始化仓库 下图显示初始化成功了一个空的仓库


这时候会看到一个.git文件夹

这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。

如果你没有看到.git目录,那是因为这个目录默认是隐藏的,用ls -ah命令就可以看见:


4.现在编写一个test.txt 文件 内容为 “content1" 添加到仓库中:


添加文件到Git仓库,分两步:

  1. 使用命令git add ,注意,可反复多次使用,添加多个文件;
  2. 使用命令git commit -m ,完成。

Git入门--版本的提交以及回滚的基本命令_第1张图片

-m后的字符为"提交时的描述"  方便日后查找

5.我们已经成功地添加并提交了一个test.txt文件,现在,是时候继续工作了,于是,我们继续修改test.txt文件,改成如下内容:


现在,运行git status命令看看结果:

Git入门--版本的提交以及回滚的基本命令_第2张图片

git status命令可以让我们时刻掌握仓库当前的状态,上面的命令输出告诉我们,test.txt被修改过了,但还没有准备提交的修改。

虽然Git告诉我们test.txt被修改了,但如果能看看具体修改了什么内容,自然是很好的。比如你休假两周从国外回来,第一天上班时,已经记不清上次怎么修改的test.txt,所以,需要用git diff这个命令看看:

Git入门--版本的提交以及回滚的基本命令_第3张图片

git diff顾名思义就是查看difference,可以看到内容被更改为content2了,这时候提交仓库:

依然是git add 和git commit -m 命令:

Git入门--版本的提交以及回滚的基本命令_第4张图片

6.现在已经有两个版本存在仓库里了 如果想要退回某个版本怎么做呢?可以先使用git log 命令查看以往的版本:

Git入门--版本的提交以及回滚的基本命令_第5张图片

首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交1094adb...(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

现在,我们要把当前版本append GPL回退到上一个版本add distributed,就可以使用git reset命令:


现在我们再看test.txt文件就回到了第一次提交的版本:


7.如果再想回去content2的版本呢 git log 查看下现在已经只剩下content1了 如果想回去 只有找到曾经提交过的commit id才行:Git入门--版本的提交以及回滚的基本命令_第6张图片

输入git reset --hard d1fdc回到最新版本:


Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git仅仅是把HEAD从指向对应的版本

然后顺便把工作区的文件更新了。所以你让HEAD指向哪个版本号,你就把当前版本定位在哪。

现在,你回退到了某个版本,关掉了电脑,第二天早上就后悔了,想恢复到新版本怎么办?找不到新版本的commit id怎么办?

在Git中,总是有后悔药可以吃的。当你用$ git reset --hard HEAD^回退到content1版本时,再想恢复到content2,就必须找到content2的commit id。Git提供了一个命令git reflog用来记录你的每一次命令:

Git入门--版本的提交以及回滚的基本命令_第7张图片

小结

现在总结一下:

  • HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id

  • 穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。

  • 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

你可能感兴趣的:(Git)