一、Git简介
概念就这一句话:Git是一个目前非常流行也好用的分布式版本控制系统。
作者牛逼创造经历:因为各种不爽,为了能够托管Linux源代码,Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!
废话不多说,下面进入实操。
二、Git安装与初始化
官网下载:https://git-scm.com/downloads(本人下载windows版本的)
安装步骤:不多说,默认安装即可。
安装完成后,在开始菜单里找到“Git”->“Git Bash”,打开Git Base窗口。
设置本地机器的用户名,邮箱:
$ git config --global user.name "你的用户名"
$ git config --global user.email "你的邮箱"
这个设置的含义:指定本机器所有仓库都使用这个用户名和邮箱。
当然也可以给某个仓库指定一个特定用户名和邮箱,操作如下:
1)进入项目根目录;
2)输入:
$ git config user.name "你的用户名"
$ git config user.email "你的邮箱"
完了,查看一下就知道了:
$ git config --list
......
......
(看看输出里的user.name和user.email值就知道了)
是不是很简单,只要将--global参数去除就可以了。
下面,我们在进入实操之前,先了解一下几个重要的概念吧
三、重要概念简介
工作区和版本库
此处,引用 廖老师画的图片,客人们可参考廖老师 https://www.liaoxuefeng.com/wiki/896043488029600/897271968352576 写的教程。
如上图所示,工作区其实对应的就是我们增删改文件的所在目录,版本库包含暂存区,以及最终提交后的存储区。
我们提交文件到Git版本库的时候,是分两步执行的:
第一步:用git add
把文件添加进去,实际上就是把文件修改添加到暂存区;
第二步:用git commit
提交更改,实际上就是把暂存区的所有内容提交到当前分支。
其实,简单总结起来就是:把需要提交的文件修改全部先放到暂存区,然后,一次性提交暂存区的所有修改。
下面来看基础版常规操作会用到的指令吧。
四、Git基本使用技巧
4.1 创建版本库:
mkdir Git(我直接在F盘根目录下创建,客人您可自选目录创建,但windows下,最好不要含有中文)
cd Git
查看下路径:

输入:git init
返回:Initialized empty Git repository in F:/Git/.git/
至此,版本库创建完成。
4.2 建设的过程——增改删
增:
我们在Git仓库目录下,新增一个first.txt文件,然后执行下面git指令,如下图所示(请忽略我的环境显示):
主要就是git add "文件名" ,git commit -m "提交说明",这样文件就提交了。
可以查看,日志:
改:
打开文件,在文件中添加内容:This is my first Git file.
然后提交:
> git add first.txt
> git commit -m "modify first.txt"
[master c3e6255] modify first.txt
1 file changed, 1 insertion(+)
删除:
直接使用指令,删除:
> git rm first.txt
rm ‘first.txt‘
> git commit -m "remove file first.txt"
做了这么一波操作,忽然发现出错了,怎么办?
还好,这里还能卖给你一点Git提供的后悔药...
4.3 你的后悔药——撤销与版本回退
这里主要分两种情况,
第一种,你使用了git add 指令,还没有使用 git commit,这种情况,执行撤销操作即可。
第二种,你执行了git commit,这种情况,需要回退版本。
下面,我们分别看看:
撤销情景与操作:
情景1:改错了工作区某个文件的内容,想丢弃工作区该文件的修改时。
解决方案:用命令git checkout -- file
。
情景2:不但改乱了工作区某个文件的内容,还执行了git add ,添加到了暂存区,想丢弃修改。分两步,
解决方案:第一步用命令git reset HEAD <file>
,目的是使用版本库中该文件的最新版本替换暂存区该文件,这样就回到了情景1;第二步按情景1操作。
情景3:已经提交了不合适的修改到版本库时,想要撤销本次提交。
解决方案:参考下面的版本回退。(如果你已经推送到远程服务器,那么,这个操作也救不了你了)
版本回退:
首先查看历史提交记录:
> git log --pretty=oneline
9f6506b1f40e5e6682ed43cead74fd9066343649 (HEAD -> master) remove file fist.txt
c3e6255f4a21d7b9d6b6b47da1b9df07a55ba4f0 modify first.txt
6169bd8dd8ce3e4941582beb0ea877c47b07b50a add file fist.txt
或者推荐使用
> git reflog能够输出历史所有提交的操作记录
> git reflog
b8017ea HEAD@{3}: commit: remove first.txt
3c8f78c HEAD@{2}: commit: modify test02.txt
c3e6255 (HEAD -> master) HEAD@{4}: reset: moving to c3e62
9f6506b HEAD@{5}: commit: remove file fist.txt
c3e6255 (HEAD -> master) HEAD@{6}: commit: modify first.txt
比如,想要回退到删除first.txt文件之前,那么只要使用
>git reset --hard 3c8f78c
当然,这个版本之后修改的文件状态也将丢失。
原文:https://www.cnblogs.com/huangxun-Blog/p/12418774.html