git使用教程概述

首先声明本文章是根据本人阅读廖雪峰老师
的git教程进行的总结概括,详细内容请看廖雪峰老师的Git教程https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

  • Git是什么?

git 简介

Git是什么?
Git是目前世界上最先进的分布式版本控制系统(没有之一)

git的诞生

Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!一个月之内,Linux系统的源码已经由Git管理了!

集中式vs分布式

集中式版本控制系统:版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。
集中式版本控制系统最大的毛病就是必须联网才能工作

分布式版本控制系统:分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库。分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。

安装git

创建版本库 把文件添加到版本库

在想要创建版本库的文件夹中,右键,选择gitbash ,输入git init 就完成了版本库的创建。

添加到版本库:新建文件readme ,然后输入命令git add readme.txt
执行上面的命令,没有任何显示,这就对了,Unix的哲学是“没有消息就是好消息”,说明添加成功。
然后执行 git commit -m “提示信息’ 提交到仓库

时光机穿梭

查看仓库状态 : git status
如果我们修改了readme ,那么使用上面的命令就可以看到readme被修改
git diff readme.txt 可以看到具体被修改的内容

版本回退

git log 看提交记录,记录中有commit id
git使用教程概述_第1张图片
git reset - -hard HEAD^ 回退到上一次commit
git reset - -hard a222f 回退到指定提交版本,版本号不需要写全,系统会自动查找
当你回退到之前的版本后,后悔了,想要回到最新的提交版本,这时你可以使用git reflog 来查看你所有的操作命令
git使用教程概述_第2张图片
这时你就可以看到你之前的提交commit id 了
再使用git reset –hard commitid 可以了
这里写图片描述

工作区和暂存区

工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库

Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针HEAD

git add把文件添加进去,实际上就是把文件修改添加到暂存区
git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。
git使用教程概述_第3张图片
你可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改

管理修改

Git跟踪并管理的是修改,而非文件。
git diff HEAD -文件名 查看该文件工作区和版本库里最新版本的区别
git使用教程概述_第4张图片
git checkout - - 文件名 丢弃工作区的修改,如果已经git add 加入过暂存区,丢弃的部分只是git add 操作后的修改(工作的修改)
这里写图片描述
如果文件修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

如果文件已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
可以checkout 文件夹,记住- - 必须加上,不然就变成了切换分支的命令了

删除文件

git rm 文件名 从版本库删除指定文件
rm 文件名 从文件管理器中把文件删除
如果只是误删,并没有从版本库删除,可以使用git checkout - - 文件名 来从版本库中恢复到最后一次提交,但是如果从版本库删除,则无法使用git checkout - -文件名来恢复文件。那我们后悔了该怎么办呢,使用之前提到的git reset - -hard commitid 就可以实现了。
所以结论是:如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。

你可能感兴趣的:(git)