前言
最近在整理一下自己的知识,以便知识沉淀,所以就有了这篇文章。
知识概念
-
什么是GIT?
Git是一个开源的分布式、去中心的版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 -
如何理解GIT仓库?
理解GIT仓库首先要知道GIT有哪些区域、文件在这些区域内是怎么流转的.
如上图这就是一个git仓库,不管你是通过 git init初始化还是通过开发工具git clone一个远程仓库都会创建这样一个目录,现在来解释一下它们的含义。
目录:git管理的一个目录也就是一个git仓库。
工作区:目录下,.git文件夹以外的都是工作区。工作区的目的是存放需要git进行版本控制的文件或者文件夹。
版本库:目录下的.git的文件夹就是版本库。
Stage:也称为index,指的是暂存区,通常通过add将文件添加进来,目的是对文件进行标记。
local Repo:指的是你的本地库就是当你执行commit操作后会将文件提交到这里来,所谓的提交到远程仓库(push)就是将你本地库上的东西提交上去 -
GIT状态
Git 有三种状态,你的文件可能处于其中之一: 已提交(committed)(本地仓库区域)、已修改(modified)(工作区域) 和 已暂存(staged)(暂存区域)为了更加直观的感受文件在区域内变化过程,画了张流程图如下:
GIT提交流程:
1、初始化仓库.
2、新增文件或者修改文件.
3、如果此时文件修改错了可以使用git checkout命令直接清除,否则加入到暂存区域内.
4、如果暂存区域内的内容添加错了可以使用git reset命令直接清除,否则提交到本地仓库.
5、如果本地库的内容提交错了可以使用git reset命令直接回推到指定版本,否则推送到远程仓库.
注意:推送前一般都是先拉去代码看看有没有冲突,没有冲突就提交,有冲突就解决冲突在重新走流程推送.
知识点:
1、git reset --mixed [版本号]:此为默认方式,这种方式,它回退到某个版本,只保留源码,回退commit和index信息.2、git reset --soft [版本号]:回退到某个版本,只回退了commit的信息,不会清除之前修改在暂存取的内容,如果还要提交,直接commit即可.
3、git reset --hard [版本号]:彻底回退到某个版本,本地的源码也会变为上一个版本的内容.
4、如果当前工作任务进行了一半又不想提交但是又有紧急任务需要切换新的分支时,此时可以用git stash进行隐匿文件修改内容,隐匿后修改的内容不会出现在任何分支上,当紧急任务完成后重新切换回来时可以通过git unStash 将隐匿的内容重新回归.使用时需要注意时隐匿文件不会对没有进行追踪的文件进行隐匿.
总结
1、首先要理解git的一些相关概念,如它的工作区域等2、注意看git bash的提示信息,它的提示信息可以帮助你解决很多问题。
初学者还是尽量敲命令,通过使用命令行你可以更清楚的知道它运作的原理。如果你使用命令行都能操作git那么使用idea操作就更容易了。