Git基础知识(一)

前言

Git是一个开源的分布式版本控制系统。本文很多内容翻译自:

https://www.codecademy.com/learn/learn-git

使用Git的第一步是下载Git,下载地址,安装时所有选项都默认选择即可。


基本工作流程

1. init

首先新建一个文件夹,进入文件夹后右击鼠标,选择git bash,敲打命令

git init

git会生成一个隐藏的.git文件夹,里面的内容用于版本控制。这样便完成了git的初始化工作,后续即可进行版本控制。
这里写图片描述

2. 三个工作区的认识

初始化完了一个git工程后,稍微来认识一下git工程。一个git工程有三个重要组成部分:

  • 工作区 (Working Directory):就是我们当前能看到和编辑的文件夹。
  • 缓存区 (Staging Area/Index Area):可以将工作区的变化添加到此区域。
  • 仓库 (Repository):将从工作区添加到缓存区的变化永久存储起来,作为不同的版本。

Git的工作流程包括:在工作区编辑文件产生变化,添加文件变化到缓存区,保存文件的变化到仓库。
这里写图片描述

3. status add commit

status命令:查看工作区以及缓存区的状态
add命令:添加工作区的文件到缓存区
commit命令:将缓存区的文件变化存储至仓库

a. 我们先新建一个空文件git.txt,敲入命令

git status

这里写图片描述

提示的信息是:没有内容被添加到缓存区,但是工作区有新建还未进行版本控制的文件。

b. 将这个文件添加至缓存区,并再次查看状态

git add git.txt
git status

这里写图片描述

提示的信息是:缓存区有待提交的新文件

c. 将这个文件提交,-m代表提交的信息,是必须项。

git commit -m "init"
git status

这里写图片描述

此时git的状态显示: (缓存区)没有东西可以提交到仓库,工作区也没有什么变化。

diff

diff命令:比较工作区和缓存区的不同。

a. 我们首先添加三行文字到git.txt
这里写图片描述
b. 敲入命令

git diff git.txt

这里写图片描述

结果表明:工作区添加了三行文字。

c. 将其添加至缓存区并提交

git add git.txt
git commit -m "add three lines"

d. 再次在工作区编辑git.txt
这里写图片描述

e. 敲入git diff git.txt

git diff git.txt

这里写图片描述

我们之前说过diff是工作区和缓存区的比较,c步骤commit之后缓存区已经为空了,当缓存区为空时,比较的是仓库最新的commit。

f. 将其添加至缓存区并提交

git add git.txt
git commit -m "delete two lines add one line"
log

log命令就是展示之前的所有commit史

git log

这里写图片描述

小结
  1. git三个区域的认识:工作区、缓存区、仓库。
  2. 几个基本命令
    这里写图片描述

版本回退

1. 认识HEAD

你当前所在的commit称为HEAD commit,大部分情况下,最近一次提交的commit就是HEAD commit,简称HEAD。
显示HEAD

git show HEAD

这里写图片描述
可以看到,HEAD就是我们最后一次的commit。

2. checkout

当你编辑工作区的文件,但是改着改着就乱了,想回退到之前的状态时,就可以使用checkout命令。
a. 编辑git.txt
这里写图片描述

b. 回退到之前的状态

git checkout HEAD git.txt

这里写图片描述

工作区的内容就会丢弃之前的编辑并且清理缓存区的内容,完全回到上一次commit的状态。

3. reset

reset命令用于将文件从缓存区撤回,以防止被commit。

a. 我们编辑git.txt,并将其add进缓存区
这里写图片描述

b. 新建一个空文件git1.txt,将其add进缓存区

c. 当我们想要commit时觉得git.txt的变化没必要在这次commit进行,于是便使用reset撤回。

git reset HEAD git.txt

这里写图片描述

这样,这一次commit便不会包含git.txt的变化了。reset只是从缓存区撤回并不会影响工作区。

这里写图片描述

d. 对git.txt重新进行add和commit操作。

git add git.txt
git commit -m "add two lines to git.txt"
4. reset SHA

reset除了3中从缓存区撤回的功能外,还可以改变HEAD的位置。

a. 首先看一下现在的log

git log

这里写图片描述

b. 将HEAD回退到之前某一个版本,这里选择”delete two lines add one line”那个版本

git reset 39f016

这样,HEAD就回到这里,但是注意,工作区的内容是不会改变的,只是单纯将HEAD拉回到原先的版本。

git status

这里写图片描述

状态图:
这里写图片描述

c. 重新add和commit

git add git.txt git1.txt
git commit -m "modified git.txt add git1.txt"

再看一下log

git log

这里写图片描述

历史轨迹已经改变~~

5. checkout SHA

相比reset SHA,checkout SHA更加彻底,他会直接将版本回退到那个版本,并且工作区的内容也直接回退到该版本。
这里写图片描述

这里的结果就是,git.txt回退到该版本状态,git1.txt也被删除了,因为该版本并无git1.txt。

小结
  1. 认识HEAD
  2. 几个基本命令
    这里写图片描述
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值