廖雪峰的官方网站:

GitHub网站:

如果是Linux版本,可以直接通过源码安装。

先从Git官网下载源码,然后解压,
依次输入:
./config
make
make install
这几个命令安装就好了。

安装完成后配置用户命和邮箱地址:

$ git config --global user.name "Your Name"
$ git config --global user.email ""

让Git显示颜色,会让命令输出看起来更醒目

$ git config --global color.ui true

创建一个版本库:

$ mkdir git
$ cd git
$ pwd
/data/git

把这个目录变成Git可以管理的仓库:

$ git init

把文件添加到仓库:(编辑一个文件,内容随意)

$ git add readme.txt
把文件提交到仓库:
$ git commit -m "wrote a readme file"

查看状态,文件是否被改动:

$ git status
具体修改了什么内容:
$ git diff readme.txt

查看历史记录:

$ git log
如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数:
$ git log --pretty=oneline

首先,Git必须知道当前版本是哪个版本,

在Git中,用HEAD表示当前版本,
上一个版本就是HEAD^,
上上一个版本就是HEAD^^,
当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
$ git reset --hard HEAD^

最新的那个版本“append GPL”已经看不到了!

好比你从21世纪坐时光穿梭机来到了19世纪,想再回去已经回不去了,肿么办?
$ git reset --hard 3628164

现在,你回退到了某个版本,关掉了电脑,

第二天早上就后悔了,想恢复到新版本怎么办?
找不到新版本的commit id怎么办?
$ git reflog

查看工作区和版本库里面最新版本的区别:

$ git diff HEAD -- readme.txt

把文件在工作区的修改全部撤销,这里有两种情况:

一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态
$ git checkout -- readme.txt

暂存区的修改撤销掉(unstage),重新放回工作区:

$ git reset HEAD readme.txt

从版本库中删除该文件:

$ git rm test.txt
$ git commit -m "remove test.txt"

另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:

$ git checkout -- test.txt

要关联一个远程库,使用命令

git remote add origin

关联后,使用命令

git push -u origin master第一次推送master分支的所有内容;

此后,每次本地提交后,只要有必要,就可以使用命令

git push origin master推送最新修改;

要克隆一个仓库,首先必须知道仓库的地址,

然后使用git clone命令克隆。
Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。

创建dev分支

git branch dev

切换到dev分支

git checkout dev

查看当前分支

git branch

把dev分支的工作成果合并到master分支上

git merge dev

地删除dev分支

git branch -d dev

查看分支的合并情况

git log --graph --pretty=oneline --abbrev-commit

准备合并dev分支,请注意--no-ff参数,表示禁用Fast forward

git merge --no-ff -m "merge with no-ff" dev

如果要丢弃一个没有被合并过的分支

git branch -D <name>

查看远程库信息

git remote -v

推送分支

git push origin master

抓取分支

git clone

打一个新标签

git tag v1.0

git tag v0.9 6224937

查看所有标签

git tag

创建带有说明的标签,用-a指定标签名,-m指定说明文字

git tag -a v0.1 -m "version 0.1 released" 3628164

查看标签说明文字

git show <tagname>

如果标签打错了,也可以删除

git tag -d v0.1

推送某个标签到远程

git push origin <tagname>

一次性推送全部尚未推送到远程的本地标签

git push origin --tags

如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:

$ git tag -d v0.9
Deleted tag 'v0.9' (was 6224937)
然后,从远程删除。删除命令也是push,但是格式如下:
$ git push origin :refs/tags/v0.9
To
 - [deleted]         v0.9

忽略某些文件时,需要编写.gitignore