git是免费的开源的分布式的版本控制系统。 android
我说的直白点,要强调的点是每一个git clone下来的版本库都是一个完整的版本库,包括全部的历史记录和版本信息,不须要依赖网络,这点在使用的过程当中你必定会有感触,git不是盖的。
git很快,可是这点我没有大的感受;
git易于使用,相对svn而言,我不以为git比之简单,可是整体来讲git仍是比较容易的,尤为是服务器端的部署很是简易。
本文仅仅介绍一下git的简单使用。关于一些不经常使用的东西尽可能会过滤掉。 git
1.基本命令。 github
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
/**
*这里列举几个常见的git命令,让你们过过目
**/
1)基本操做
>git init//初始化版本库
>git clone//克隆版本库
>git add//添加新文件
>git commit//提交到本地版本库
>git checkout//检出(分支、标签)
2)分支
>git branch//列出分支
>git branch -r//列出远程分支
>git branch -a//列出全部分支
>git branch newBranch//基于当前分支建立新分支newBranch
>git branch -D branchName//删除分支branchName
>git branch -d branchName//仅删除已合并分支branchName
>git merge <-->//合并分支<br>>git tag
|
1
2
3
4
5
6
7
|
3)历史
>git log//显示所有历史
>git log -p//显示版本历史,以及版本间的内容差别
>git log -5//显示最近的5个提交
>git log -5 -p//显示最近的5个提交,以及版本间的内容差别
>...(不少不少参数...)
>git diff 112 115//显示112和115版本的差异
|
2.开始使用git。
我在github创建来一个工程qianxudetianxia: 服务器
1
|
git@github.com:fjtianxia/qianxudetianxia.git
|
咱们以这个为例子来演示如何使用git。
说明:关于github上建立repository以及本地的配置,我已经配置完成,这不是本文要讲的重点,因此我接下来直接演示使用。 网络
3.克隆版本库
使用git clone命令,克隆操做就是建立远程版本库的本地拷贝。
举例说明,我想把服务器的版本库克隆到本地的code/文件夹下: 分布式
1
2
3
4
5
6
7
8
9
|
> cd code
> git clone git@github.com:fjtianxia/qianxudetianxia.git
//该命令会在code文件夹下建立qianxudetianxia文件夹,做为远程版本库的一个本地拷贝,输出结果以下
Cloninginto
qianxudetianxia...
remote: Counting objects: 8, done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 8 (delta 1), reused 0 (delta 0)
Receiving objects: 100% (8/8), done.
Resolving deltas: 100% (1/1), done.
|
若是你不想看到生成的文件夹是qianxudetianxia,只要在上面命令后加上另外的名字便可: svn
1
2
|
//下面则是在本地生成test目录,做为远程版本库的一个本地拷贝
> git clone git@github.com:fjtianxia/qianxudetianxia.git test
|
补充一点,svn中本地的版本只是服务器版本的一个切面,可是git不一样,本地版本是一个完整的版本库,包括全部的历史信息和版本信息。
我在Android拓展系列(1)--Android源码下载文章中提到的下载android源码也用到了git clone命令,以下: spa
1
|
>git clone git://android.git.kernel.org/platform/frameworks/base.git android-sdk-source
|
区分:git init和git clone的差异,git init用于建立版本库,这个内容我在本文此略去(本文着重于git的了解,关于建立和搭建服务器配置还有客户端的使用都故意略去),git clone则是从远程服务器克隆,包括历史记录。 .net
4.添加文件
git中存放代码的地方有三个,第一个是工做目录树,也就是咱们看到的代码文件夹;第二是暂存区,是本地中和远程版本库的一个缓冲区域,暂存区通常存放的是本地准备要提交到远程版本库的修改;第三个是远程版本库。
git add命令是把工做目录树中的修改添加到暂存区。 版本控制
1
2
3
4
5
|
> cd qianxudetianxia/
> touch test.txt//建立test.txt文件
> git add test.txt//添加到本地版本库
> touch a.txt b.txt//建立多个文件
> git add .//提交当前文件夹的增长项到本地版本库
|
添加成功后,咱们用git status命令来查看如下当前工做目录树的状态:
在分支branch上有三个新文(new file)件。
5.提交到本地版本库
1
2
3
4
5
6
7
8
|
//git commit是提交命令,把修改提交到本地版本库中
//-m参数,添加说明文字
> git commit -m'add the three new file'
[master a0885c9] add the threenew
file
0 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 a.txt
create mode 100644 b.txt
create mode 100644 test.txt
|
提交成功。
6.查看分支。
1
2
3
4
5
|
>git branch -a
//输出以下,其中master是本地分支,origin是远程版本库的别名
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
|
7.合并到远程版本库。
1
2
3
4
5
6
7
8
9
|
//把本地分支master的修改合并到远程版本库origin中(的远程分支master)
> git push origin master
Counting objects: 3, done.
Delta compressionusing
up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 294 bytes, done.
Total 2 (delta 0), reused 0 (delta 0)
To git@github.com:fjtianxia/qianxudetianxia.git
8a7d54d..a0885c9 master -> master
|
到此,git的最基本使用已经熟悉了。
8.查看log。
git log命令用于查看修改日志,它的参数很是丰富,在此不一一列举了,参考本文开始的基本命令部分。
9.查看分支 。
咱们先查看分支,再添加新的分支branch1来看看效果:
新建分支后,咱们能够经过checkout切换到指定分支。
绿色颜色标识了当前所在分支。
除了能够新建分支,也能够删除分支:
分支功能是git最强大的一部分,还能够从基于远程分支建立新分支,合并分支等等。
10.查看标签。
Tag标签,是为了记录一些重要的事件,被打成一个标志,好比android的版本号等等里程碑事件。
tag和branch的添加,切换的使用方式基本相同。
tag是只读的,该tag对应的工做目录树内容不能再修改了,而branch则不是。
11.小结。 git真是一个很不错的东西,推荐你们去了解下,并在工做中能去普及使用。