Git操作与仓库创建
Git简介
首先了解一个概念:版本控制,简单来说就是如果你做文案工作,每次提交之后,你的领导会让你修改,一篇稿子可能修改十几次,但是最后定稿的很可能不是最新修改的那一稿,所以就需要有个版本控制的方法,可以回溯到你所修改的任何一版,并且可以拿出来使用。
目前来说,版本控制主要分为:集中式版本控制(Centralized Version Control Systems,简称 CVCS)和分布式版本控制,(Distributed Version Control System,简称 DVCS)。
集中式版本控制类似于中央集权,多个终端与一个服务器进行交互,缺点明显,如果服务器损毁,则所有终端都不能拿到最新版本。
分布式系统(distributed system)是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。
下图就是分布式版本控制系统的图解:
想更多的了解这两者的优缺点,请点击这里 CVCS的代表主要有CVS、SVN 以及Perforce等;
DVCS主要有 Git、Mercurial、Bazaar 以及 Darcs 等。我们平时比较常用的就是SVN和Git。
Git是世界上目前最先进的版本控制系统,Git的开发者也是Linux操作系统的创始人:“林纳斯·本纳第克特·托瓦兹”,他开发这个Git只用了短短两周,而关于这个Git开发的故事,也有一段奇闻,想了解的请点击深入 git 必看:git 是如何被创造的?讲述 git 的诞生史、核心思想及其父:Linus Torvalds
如想了解SVN的简单使用,可以查看:SVN的介绍与使用流程。
接下就开始介绍Git的简单操作使用。以下主要对官方文档以及其他文档的总结,会使用git作为版本控制工具来完成团队协作。因此,对基本的git操作指令进行总结是十分有必要的,本文会对基本的理论与命令做归纳总结。
git的通用操作流程如下图

主要涉及到四个关键点:
- 工作区:本地电脑存放项目文件的地方,比如learnGitProject文件夹;
- 暂存区(Index/Stage):在使用git管理项目文件的时候,其本地的项目文件会多出一个.git的文件夹,将这个.git文件夹称之为版本库。其中.git文件夹中包含了两个部分,一个是暂存区(Index或者Stage),顾名思义就是暂时存放文件的地方,通常使用add命令将工作区的文件添加到暂存区里;
- 本地仓库:.git文件夹里还包括git自动创建的master分支,并且将HEAD指针指向master分支。使用commit命令可以将暂存区中的文件添加到本地仓库中;
- 远程仓库:不是在本地仓库中,项目代码在远程git服务器上,比如项目放在github上,就是一个远程仓库,通常使用clone命令将远程仓库拷贝到本地仓库中,开发后推送到远程仓库中即可;
因此,经过这样的分析,git命令可以分为这样的逻辑进行理解和记忆:
1.git管理配置的命令;
2.几个核心存储区的交互命令:
3.工作区与暂存区的交互;
4.暂存区与本地仓库(分支)上的交互;
5.本地仓库与远程仓库的交互。
Git下载与环境配置
Git下载安装以及环境配置请参考Git下载、安装与环境配置,这里不再赘述。
git配置命令
Git操作需要在一个文件夹下生成,安装完成之后,在桌面或者文件夹下,点击右键,出现下图:

Git GUI 是图像化显示,与Git Bash功能一样 Git Bash常用此方式创建一个仓库,点击打开Git控制台
以下所有命令均在Git控制台上运行:如下图
1 | $表示提示输入 |
查询配置信息
1 | 1.列出当前配置:git config --list; |
第一次使用git,配置用户信息
1 | 1.配置用户名:git config --global user.name "your name"; |
其他配置
1 | 1.配置解决冲突时使用哪种差异分析工具,比如要使用vimdiff:git config --global merge.tool vimdiff; |
工作区上的操作命令
1 | 新建仓库 |
查看文件状态
1 | $ git status |
移除文件
1 | $ git rm |
提交
1 | 1.提交工作区所有文件到暂存区:git add .('.'的前面还有个空格!) |
暂存区上的操作命令
1 | 提交文件到版本库 |
删除git远程仓库地址
1 | git remote -v //查看 |
分支管理
1 | 1.创建分支:git branch <branch-name>,如git branch testing; |
忽略文件.gitignore
一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件模式。如下例:
1 | # 此为注释 – 将被 Git 忽略 |
查看历史命令
1 | $ histroy |
完整创建一个仓库的流程
1 | cd mall-client |
最常用的Git命令
1 | git init \\初始化 |
结语
在学习中总结,也有很多不足的地方,总结不是很到位,望指出。
记得很早开始开始接触的时候,也是很懵,看着一堆英文的界面啥也不懂,虽然我看的懂部分英文解释说明,但是对这个系统的工作流程与工作方式是一知半解的,分布式版本控制系统我觉得有时候也像是区块链的思想,我感觉我很有动力去学这些东西,特别是写自己的博客,我觉得很开心,甚至再探索的时候时间不知不觉就来到了凌晨,我非要解决了眼下这个问题才肯休息……从入门到现在,一点心得就是,初学不需明白那些非常高深的理论知识,只要知道git是个版本控制器就行,知道怎么创建仓库,怎么利用别人的仓库的开源项目提升自己,和SVN的区别也不需特别的去理会,一边学习一边应用,效率才是最高的。使用过,才知道他是个什么,以前那些原理也就恍然大悟了,可以举一反三!即初学少研究,多实践,最后事倍功半!
v1.4.14