GIT基础01 基础命令与分支

前言

我们知道git是开发中比较常见的版本控制工具

我们可以先提出一个场景:

老板让你去修改方案 

第一次修改 打回

第二次修改 打回

第n次修改 老板让你使用第一次的版本  阁下如何应对???

我对每个版本进行编号??  是一种方案

但是这里也是有缺陷的  比如说在很多版本中找一个有特定功能的版本不好找  

此时我们就可以使用git

git可以记录每个文本文件的新增 二进制大小的更新

命令 

安装命令

sudo yum install  -y  git

初始化仓库

git init

新增配置项

git config user.name qqsbx
git config user.email "1815798600"

//注意这里的变量需要配置全局  不然只是这个仓库这里有用 所以我们加上--global

git  config --golbal user.name qqsbx

删除配置项

git config --global --unset  属性

下面我们提出git的三个重要概念区域 

工作区       暂存区    版本库

我们执行了以上命令git就能管理了吗???

并不见得   我们需要将对应的文件进行add     commit才行

这里add就是将文件上传到暂存区   commit就是将缓存区的文件提交就行版本控制 主要的流程如下

这里的版本控制咋实现的??

其实就是维护一个objects对象库   

然后对应的master分支等就是保存起的版本索引  

每次只切换索引 修改索引即可 比较轻量级

master分支下也是一个目录树,存储的也是索引

只要拿到对应的head指针就能拿到 master分支 就能拿到对象 

添加命令

git add .  就是将所有的新增文件加进去暂存区
git add  file  也可以输入文件名来进行添加


   确认命令

git commit -m  "描述"

查看日志

git log
//查看好看的日志 一行展示
git log --pretty=oneline

我们知道对应的git仓库就是隐藏文件.git

这里.git/HEAD中存放的就是master

master中存放的就是对应的本地提交的一个commitID

查看git文件的内容

git cat-file -p commitID

注意一定要add了之后才能commit 

git追踪管理的并不是文件  而是对修改追踪

我们可以查看仓库状态来查看

查看仓库状态

git status 

也可以查看到文件的新增内容

查看文件变化内容

git diff  file(文件名)

OK下面就到了我们最经典的版本控制以及回退功能的操作了

这里我们先画个图理解一下

版本回退

git  reset    --soft/--mixed/--hard   HEAD

这里的soft就是只回退工作区

mixed可以省略是默认的    是回退工作区和暂存区

hard也是最危险的 可以直接回退工作区  暂存区  版本库的内容

我们可以通过以下命令来进行回退

git reset --hard commitID   
//这里commitID就代表了某个版本

然后如果我们回退错了

但是还记得新版本的版本commitId  也是可以进行恢复的

但是日志一多就很容易找不到之前的版本号

我们只想回退工作区的时候可以使用

git checkout -- 文件名  

我们想回退一个版本可以使用

git reset --hard HEAD^


//这里的HEAD就表示当前版本,加上一个^就表示上一个版本
如果多加几个^就表示前n个版本

如果我们想进行删除文件可以使用以下命令

删除文件

rm file 
-> add  ->  commit



或者可以使用git提供的命令
git rm file   ---> 这个命令是直接包含add操作的
后面直接commit 即可

分支管理

我们知道git一般是由多个分支的

我们在开发的时候是往往由不同的分支来开发

经过一定的审核之后再融入主分支的

这里每个文件的更新是以子节点的形式产生的

比如a文件更新了

这里在版本库下就是更新前的id 指向更新后的id

更新后的id是更新前id的子节点

下面是一个简单的创建分支的过程

查看分支

git branch

HEAD指针就是用来指向工作分支的

就是以HEAD分支来区分当前的工作分支是哪些

创建分支

git branch  分支名

假设我现在新增一个dev分支

结果图就是这样的

注意这里的分支是在最新的版本基础上创建出来的

所以新创建的dev分支就只有最新版本这一个版本的版本号

切换分支

git checkout 分支名

我们这个时候就可以切换到对应分支

然后使用 第一条命令 带星号指向的就是当前的工作分支

合并分支

git merge dev 

注意这里是不能再本分支上合并本分支的

一定要切换到其他分支才能合并本分支

删除分支

git branch -d 

创建并切换

git checkout -b 新分支名

这里的-b 就是branch

我们知道这里的合并经常会出现合并冲突问题

解决方案也就是手动解决加上重新上传即可

手动解决就是git会给对应的文件加上一段代码进行选择

我们只需要选择我们需要的版本即可

修改完重新 add  commit 即可

我们举个例子

假设我在dev分支修改了原文件

然后再master分支也修改了这个文件

这个时候我们想把dev分支merge进master分支

就会出现合并冲突问题

类似于下图

此时的状态就是这样的

  • 11
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值