配置

三个不同的地方,每一个级别都会覆盖上层配置。 * /etc/gitconfig, 系统中所有用户配置。使用git config时用–system选项,读写该文件 * ~/.gitconfig, 适用于当前用户,使用git config时用–global选项,读写该文件 * 当前工作目录.git/config,适用于当前项目有效

获取帮助

命令:

1
2
3
git help <verb>
git <verb> --help
git git-<verb>

例子:

1
git help config

新建Git仓库

  1. 从当前目录初始化

    1
    
    $ git init

    纳入版本控制

    1
    2
    
    git add *
    git commit -m 'initial project version'
  2. 从现有仓库克隆

在当前目录创建grit目录

1
git clone git://github.com/schacon/grit.git
1
   在当前目录创建mygrit目录
1
git clone git://github.com/schacon/grit.git mygrit

查看当前状态

1
git status

跟踪新文件,添加文件到暂存区

1
git add <filename>

忽略某些文件

查看忽略文件

1
cat .gitignore

文件.gitignore的规范格式 * 所有空行或以注释符号#开头的行都会被Git忽略 * 可以使用标准的glob模式匹配 * 匹配模式最后跟反斜杠(/)说明忽略的是目录 * 忽略指定模式以外的文件或目录,在模式前加惊叹号(!)

.gitignore文件例子

1
2
3
4
5
6
# 此为注释 ----将被Git忽略
*.a     #忽略所有.a结尾的文件
!lib.a  #但lib.a除外
/TODO   #仅仅忽略项目根目录下的TODO文件,不包括subdir/TODO
build/  #忽略build/目录下所有文件
doc/*.txt#会忽略doc/notes.txt,但不包含doc/server/arch.txt

查看/比较已暂存和未暂存的更新

查看尚未暂存文件

1
git diff

查看已暂存文件

1
2
git diff staged
git diff cached   #Git 1.6.1更低版本

提交更新

命令: -v 选项将修改差异的每一行都包含到注释中 -a 选项跳过使用暂存区(吧所有已经跟踪的文件暂存一并提交,从而跳过git add步骤) –amend 撤销刚才(最近一次)的提交操作

1
git commit -m 'commit comment

移除文件

命令: -f 选项强制删除修改过并且放到暂存区的文件 不删除当前工作目录文件,仅从跟踪清单中删除(比如不小心纳入仓库,要移除跟踪但删除文件以便在.gitignore文件中补上)

1
git rm <filename>

例子

1
git rm readme
1
git rm --cached Git.class

重命名文件

命令:

1
git mv file_from file_to

例子

1
git mv README.txt README

上面git mv命令等同下面命令

1
2
3
mv README.txt README
git rm README.txt
git add README

查看提交历史

1
git log

取消已经暂存的文件

命令

1
git reset HEAD <file>...

例子

1
git reset HEAD beacn.rb

取消对文件的修改

命令:

1
git checkout -- <file>...

例子

1
git checkout -- beanch.rb