1:git介绍
git是一种基于内容寻址的分布式版本控制系统。
大多数集中式版本控制系统对待文件的存储采用的是文件变更列表的方式,每次更改都只存储差异性信息。
git是一种分布式版本控制系统,每次更改都存储文件快照,其原理如下图所示。
git提供三个工作区域的概念:Git仓库、工作目录、暂存区域。
Git仓库:git用来保存git元数据和对象数据的地方,对应的是.git目录了。
工作目录:对项目的某个版本独立提取出来的内容,该目录一般不在.git目录中。
暂存区域:.git/index。
git下文件处于三种状态:已修改、已暂存、已提交。其中,已修改指的是文件已经在工作区中被修改,但是尚未提交到暂存区;已暂存指文件已经保存到暂存区(index)但是尚未进行commit操作,亦即尚未提交到本地分支上;已提交指的是文件已经被提交到本地分支。
2:git常用命令
- git init:初始化git仓库
- git add:添加文件到暂存区
- git clone:完整拷贝远程git仓库
- git status:查看当前文件状态
- git diff:查看已暂存和未暂存的修改,默认无参数查看当前工作区相对于暂存区修改,加--cached表示查看暂存区相对于分支的修改
- git commit:将暂存区文件保存到分支,会清空暂存区
- git rm:如果不带参数,则表示从版本库删除,注意,此时要删除的文件不能在暂存区,否则会失败,可以加-f参数强删,如果加--cached参数,则只从暂存区删除,工作目录仍保存该文件。
- git mv:移动文件
- git log [-p | --stat]:查看每次提交历史
- git remote:查看远程仓库
- git fetch:从远程仓库抓取或拉取
- git push:推送到远程仓库
- git remote rm:远程仓库移除
- git remote rename:远程仓库重命名
未完待续:TODO
参考文档:
https://www.jianshu.com/p/619122f8747b
https://www.ibm.com/developerworks/cn/devops/d-learn-workings-git/index.html
https://bingohuang.gitbooks.io/progit2/content/
http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html