Git基础1

copy了转载 防止丢失

https://blog.csdn.net/leelit/article/details/51199859

前言

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

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

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


基本工作流程

1. init

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

git init
  • 1

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
  • 1

这里写图片描述

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

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

git add git.txt
git status
  • 1
  • 2

这里写图片描述

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

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

git commit -m "init"
git status
  • 1
  • 2

这里写图片描述

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

diff

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

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

git diff git.txt
  • 1

这里写图片描述

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

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

git add git.txt
git commit -m "add three lines"
  • 1
  • 2

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

e. 敲入git diff git.txt

git diff git.txt
  • 1

这里写图片描述

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

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

git add git.txt
git commit -m "delete two lines add one line"
  • 1
  • 2

log

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

git log
  • 1

这里写图片描述

小结

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

版本回退

1. 认识HEAD

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

git show HEAD
  • 1

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

2. checkout

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

b. 回退到之前的状态

git checkout HEAD git.txt
  • 1

这里写图片描述

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

3. reset

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

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

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

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

git reset HEAD git.txt
  • 1

这里写图片描述

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

这里写图片描述

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

git add git.txt
git commit -m "add two lines to git.txt"
  • 1
  • 2

4. reset SHA

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

a. 首先看一下现在的log

git log
  • 1

这里写图片描述

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

git reset 39f016
  • 1

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

git status
  • 1

这里写图片描述

状态图:
这里写图片描述

c. 重新add和commit

git add git.txt git1.txt
git commit -m "modified git.txt add git1.txt"
  • 1
  • 2

再看一下log

git log
  • 1

这里写图片描述

历史轨迹已经改变~~

5. checkout SHA

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

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

小结

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值