GIT 牛刀小试 (第一发)
Git是一款非常优秀的版本控制系统,适用范围也越来越广泛,之前学习的时候看过廖雪峰的教程。今天又看了下git pro,这个也不错http://git-scm.com/book/zh/v2,这里简单总结下git的使用方法,
git将文件分为工作区文件,暂存区文件和版本库文件
工作区:我们平时操作的文件
暂存区:提交的文件
版本库:本地仓库文件
我们在工作区工作,将文件提交的暂存区,最后一块commit到本地仓库。
一、安装
linux下,可以直接命令行安装或者编译安装,这里只写命令行安装:
$ yum install git-core 或者 $ apt-get install git
Mac(git)系统和Win(git)都有图形安装界面,不再介绍;
二、配置
生成密钥:
$ ssh-keygen -t rsa -C "example@example.com"
这两个配置是一定要的: $ git config --global user.name "username" $ git config --global user.email "xxx@xx" 还有其他比较好玩的配置: $ git config --global merge.tool vimdiff $ git config --global core.editor emacs 等等吧 可以查看配置: $ git config --list $ git config user.name 获取帮助: $ git help $ git help config
三、仓库
第一种方法:
初始化仓库 $ git init 添加文件 $ git add xx.file 提交文件 $ git commit -m "some comment"
$ git commit -a -m "这样会直接跨过暂存区提交到本地仓库"
第二种方法:
克隆仓库
$ git clone git://github.com/username/project.git (rename)
如果有括号里的参数,新的版本库就会是那个名字,不然就是project名字;
在接下来的过程中可以通过不断地add和commit将文件添加到本地仓库,下面这条命令用来监控仓库状态
$ git status (-v)
四、忽略文件
只要在版本库中添加一个.gitignore文件即可手动配置版本库中要忽略的文件,然后git就会像看不到这些文件一样,可以这样写内容:
# 此为注释 – 将被 Git 忽略 # 忽略所有 .a 结尾的文件 *.a # 但 lib.a 除外 !lib.a # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO /TODO # 忽略 build/ 目录下的所有文件 build/ # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt doc/*.txt
五、比较差异
比较工作区和暂存区的差别 $ git diff 比较工作区和上次提交版本的差别 $ git diff --cached $ git diff --staged
六、删除文件
不能只是通过操作系统将文件删除,还要通过git命令删除,这样git才能知道文件被删除了: 从本地仓库移除跟踪,但是仍然在工作区工作(用来解决不小心将一些不必要的文件添加到本地仓库): $ git rm --cached readme.txt 移除log文件夹下的所有.log文件: $ git rm log/\*.log
七、移动文件
$ git mv from to 重命名: $ git mv readme.txt readme $ git rm readme.txt $ git add readme
八、查看提交的历史
参数可以后很多,不赘述:
$ git log (--pretty=oneline)
九、撤销操作
撤销这次提交: $ git commit --amend 这样只会提交一次: $ git commit -m "initial commit" $ git add forgotten_file $ git commit --amend
撤销暂存区文件:
$ git reset HEAD readme.txt
撤销修改:
$ git checkout -- readme.txt
十、远程仓库的使用
查看远程仓库: $ git remote [-v] $ git remote show [name] 添加远程仓库: $ git remote add pbName git://github.com/userName/project.git 从远程仓库抓去信息: $ git fetch pbName 向远程仓库推送: $ git push [-u] origin master (新建立的链接第一次推送要添加-u参数 远程仓库的删除和重命名: $ git remote rename pbName anotherName $ git remote rm pbName
远程仓库主要都是使用Github网站,新建项目的时候要添加密钥,生成密钥:
$ ssh-keygen -t ras -C "someone@gmail.com"
十一、标签
查看标签: $ git tag [-l]
$ git show v1.4
新建标签:
$ git tag -a v1.4 -m "myVersion 1.4"
推送标签:
$ git push origin --tags
$ git push origin v1.4
标签还有很多的参数,也不意义说清楚了!
十二、小技巧
1、Windows的msysGit配置好了自动补全的脚本,linux还需要最自己配置,具体配置可以看git pro。
2、可以通过给命令配置别名提高使用效率,也不多说!