Git流程理解与深度解析

简介:本文章注重与实际和理论相结合,简述Git在实际工作的常用操作,以及工作流程。

(一)Git本地仓库

1、git的结构

理解git的结构是本文的重点之一,是作为git操作命令和git工作流的基础。

Git结构图

这里写图片描述

如图所示:本地git分3部分,第一部分工作区(work),也是就我们的本地工作文件夹。第二个就是暂存区(stage/index),第三个就是我们的本地分支。
例如 git add ./ 就是把所有本地工作去的文件添加到暂存区,而git commit -m “提交” 这个命令就是把暂存区的文件全部提交到本地分支,最后git push 就是把本地的分支推送到远程分支。

下面我们就用sourceTree 形象的表象给大家看
当我们在文件夹中(工作区),新增一个陆雪琪的txt。那么sourceTree软件中的工作副本变化就出现了陆雪琪。
这里写图片描述
命令查看 untracked files:就是没有追踪的文件意思,说是没加入了暂存区。没版本控制的意思
这里写图片描述

然后我们执行命令 git add ./ ,就是把工作区的文件提交到暂存区里面。如图所示:陆雪琪就去到了暂存区里面了(暂存区的变化)
这里写图片描述

再看看命令 git status:陆雪琪文件已经变绿了,文字也变成 changes to be committed ,意思就是文件已经提交到暂存区,但是还没提交到本地分支
这里写图片描述

然后我们 在执行命令 git commit -m “提交”,这个时候就是把暂存区的文件提交到本地分支。如图所示:暂存区的陆雪琪不见了,然后提交那里有一个1,就是说本地分支有一个更新还没提交到远程仓库。这个时候,只要我们git push 就可以推送到远程了。
这里写图片描述

2、git还原机制

  • git revert 是生成一个新的提交来撤销某次提交,此次提交之前的commit都会被保留
  • git reset 是回到某次提交,提交及之前的commit都会被保留,但是此次之后的修改都会被退回到暂存区

我分别提交了3次修改如图所示
这里写图片描述

首先我利用git revert 回滚到第一次修改,如图所示:第二,第三次修改都没有消失,而是直接生成一个新的提交(未提交新的更改:意思就是一个新的commit),至于冲突解决这里不是重点就不说了(可以看我上一篇文章)
这里写图片描述

然后我利用git reset 回滚到第一次修改,如图所示:第二,第三次修改都消失了。
这里写图片描述

  1. git reset –soft (默认值)
    –soft 这意味着index(暂存区),working copy(工作区)都不会做任何变化,这是head指向 还原的 commit (id),即系分支还原成 commit (id)的分支。
    这里写图片描述

  2. git reset –hard
    –hard 工作区,暂存区,和本地分支都还原成 commit (id)那个分支了(HEAD指向 commit (id)那个分支了)
    这里写图片描述

  3. git reset –mixed
    working copy(工作区)不会做任何变化, index(暂存区)还原成commit (id)的内容。这是head指向 还原的 commit (id),即系分支还原成 commit (id)的分支。
    这里写图片描述

这里补上2张sourceTree命令关系图
这里写图片描述

这里写图片描述

送上一张Git命令图
这里写图片描述

http://josh-persistence.iteye.com/blog/2215214
http://www.cnblogs.com/kidsitcn/p/4513297.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值