探秘git

258 阅读3分钟

前言:本周组内分享git指令相关知识,觉得对每一位开发新人来说非常地受用。我不提倡一次性死记硬背太多的git指令。毕竟git只是工具,够用就行了。

1. 什么是git?

基本概念:git是开源的分布式版本控制系统。

版本控制:通俗讲,git管理开发文档,对文档的每次提交进行备份。通过它,开发者可实现查看,回滚,对比历史提交等操作。

集中式: 集中式就是开发文档备份在一台服务器上,本地电脑不存储。

分布式: 在多台服务器上进行备份,且服务器之间可以同步,避免一台服务器崩掉导致的严重后果。git采用的就是分布式的方式。

如下图:远程服务器,本地电脑都有备份文件。通过git指令,相互交互和同步。

2. git原理?

本地电脑上,git划分了三个区域:工作区,暂存区,版本库,分别代表了本地文件的三种状态。

常规的工作流(如下图):当前的IDE中编写代码(对应工作区),通过git add,将文件提交到暂存区,通过git commit 将文件提交到本地仓库。最后,通过git push提交到远程仓库。

3. 分支管理?

git分支:创建分支是为了细分一个项目的不同开发状态,避免相互之间的干扰。一个项目常用的git分支有master,dev,feature和hotfix。

    master分支: 存放项目最终上线的代码
       
    dev分支: 存放开发中,但尚未测试的代码
     
    feature:  存放项目中某个开发功能点的代码
     
    hotfix:  项目上线后,临时修理bug的代码
     
    上述分支,除了master,在通过测试后,最后都会合并到master分支上。

tips:不习惯git bash操作界面的话,推荐使用sourcetree可视化界面,傻瓜式操作git。

4. 常用git指令?

a. 基本工作流:克隆远程仓库,修改后,通过git status,git add,git commit,git push指令将修改的文件同步到远程仓库。

    git clone-->git status-->git add-->git commit -m-->git push

b. 同步远程仓库

    git pull

c. 查看记录

    git show   
    git log

c. 分支操作

   git branch -a  查看所有分支(包括本地库和远程库)
   git checkout -b branchname  新建分支,并切换到新建的分支下
   git checkout -D branchname  删除本地分支
   git merge/rebase  合并分支(慎重,会出现冲突)

d. 撤销指令(俗称反悔药,git根据工作区状态,提供了不同的撤销指令)

   git checkout -- filename   (撤销工作区的某个文件的修改)
   git checkout -- .   (撤销工作区的所有文件的修改)
   git reset HEAD filename   (撤销暂存区的修改,but, 工作区的修改被保留)
   
   -----------------------------------华丽的分割线------------------------------------------
   
   git revert commitId (撤销已commit的修改,同时, 撤销工作区的修改) 
   git revert --abort (git revert产生冲突时,中止此次revert操作)
   
   -----------------------------------华丽的分割线------------------------------------------

   git reset commitId (回退到某一次提交,保留工作区的修改,一旦撤销,不可恢复)
   git reset --hard commitId (回退到某一次提交,同时回退工作区的修改一旦撤销,不可恢复)

tips:git非常的贴心,它会给出下一步指令的提示。学会阅读提示,才能灵活运用git指令。关于这一块,我将另外写一篇文章进行分享。

5. 相关知识点连接

如果有问题,欢迎留言进行沟通,更多git指令可以访问git官网:git-scm.com/docs

下期预告webpack究竟何方神圣?