Git基本概念与命令使用
Git基本概念
Git是什么?
Git是目前世界上最先进的分布式版本控制系统(没有之一)。
Git有什么特点?简单来说就是:高端大气上档次!
那什么是版本控制系统?
如果你用Microsoft Word写过长篇大论,那你一定有这样的经历:
想删除一个段落,又怕将来想恢复找不回来怎么办?
Git:分布式版本控制系统
这样,你就结束了手动管理多个“版本”的史前时代,进入到版本控制的20世纪。
安装
- 在Mac OS X上安装Git
如果你正在使用Mac做开发,有两种安装Git的方法。
- 一是安装homebrew,然后通过homebrew安装Git,具体方法请参考homebrew的文档:http://brew.sh/
- 第二种方法更简单,也是推荐的方法,就是直接从AppStore安装Xcode,Xcode集成了Git,不过默认没有安装,你需要运行Xcode,选择菜单“Xcode”->“Preferences”,在弹出窗口中找到“Downloads”,选择“Command Line Tools”,点“Install”就可以完成安装了。
Xcode是Apple官方IDE,功能非常强大,是开发Mac和iOS App的必选装备,而且是免费的!
安装完成后,还需要最后一步设置,在命令行输入:
- $ git config --global user.name “Your Name”
$ git config --global user.email "email@example.com"
- $ git config --list测试一下是否安装成功
-
创建版本库
$ mkdir learngit $ cd learngit $ pwd
通过git init命令把这个目录变成Git可以管理的仓库:
$ git init 编写一个readme.txt文件 $ touch readme.txt
用命令git add告诉Git,把文件添加到缓存区:
$ git add readme.txt
用命令git commit告诉Git,把文件提交到仓库:
$ git commit -m "wrote a readme file"
-
本地
git init
之后至少需要一次commit后才能看到分支,因为git的分支必须指向一个commit,没有任何commit就没有任何分支。
查看分支:$git branch
版本控制系统肯定有某个命令可以告诉我们历史记录,
在Git中,我们用git log
命令查看: -
版本回退
在Git中,用HEAD表示当前版本
- 上一个版本就是HEAD^
上上一个版本就是HEAD^^,
当然往上100个版本写100个 ^ 比较容易数不过来,所以写成HEAD~100。
现在,我们要把当前版本回退到上一个版本,就可以使用git reset命令:
$ git reset --hard HEAD^
-
工作区和暂存区
Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念。
- 版本库(Repository)
工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
再创建一个文件LICENSE
现在,使用两次命令git add
,把readme.txt和LICENSE都添加后,用git status
再查看一下
现在,暂存区的状态就变成这样了:
git add命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit就可以一次性把暂存区的所有修改提交到分支。
- 版本库(Repository)
一旦提交后,如果你又没有对工作区做任何修改,那么工作区就是“干净”的:
$ git status
On branch master
nothing to commit, working tree clean
现在版本库变成了这样,暂存区就没有任何内容了
- 创建标签
在Git中打标签非常简单,首先,切换到需要打标签的分支上:
$ git branch
$ git tag v1.0
可以用命令git tag查看所有标签:
$ git tag
默认标签是打在最新提交的commit上的。
注意:标签总是和某个commit挂钩。如果这个commit既出现在master分支,又出现在dev分支,那么在这两个分支上都可以看到这个标签。
如果标签打错了,也可以删除:
$ git tag -d v0.1
因为创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除。