Vim+Gig是在服务器端开发再合适不过的神器!这里只是对本身日常工做中经常使用到的git命令作一个小小的总结,方便程序员开发和版本控制!git
git的配置文件
一、git有三个级别的配置文件,分别是版本库级别的配置文件、全局配置文件(用户家目录下)、系统配置文件(安装git的时候所在的目录,通常状况下是在/etc/)。它们的有限级别以下,.git 目录下的config文件配置会覆盖用户家目录下的配置文件,而用户家目录的配置文件会覆盖系统的git配置文件
二、git config -e 对版本库中的.git/config 文件进行编辑
git config -e --global 对主目录下的.gitconfig文件进行编辑
git config -e --system 对系统级别的配置文件进行编辑
三、git config <section> . <key> 用来读取某个配置节下的对应键
git config <section> . <key> 用来设置某个配置接下的对应键程序员
git --version
查看当前git的版本缓存
初始化代码仓库(此时在当前目录下,就会多一个 .git 的目录,就是代码仓库)
git init服务器
git config --global user.name 'zero'
git config --global user.email 'maweibinguo@163.com' (自报家门)
git config --global color.ur true(在命令行中开启颜色显示)
对git进行配置命令行
git rev-parse --git-dir
显示版本库.git目录所在的位置版本控制
git status -s
功能:用来比较,当前的工做目录和缓存区的状态
??:该文件尚未被git进行追踪
A:当前工做目录同缓存文件相比,新增长的文件
M:当前目录同缓冲区相比,已经进行了改变(Modify)
D: 当前目录同缓冲区相比,删除的文件日志
注意:git status 是以缓冲区中的内容为标准的,全部的AMD都是以缓冲区的内容为准,通过同缓冲区的对比,发现当前工做区进行了AMD等操做开发
git diff
功能:若是没有其余参数,git diff 会显示自从你上次提交快照以后还没有缓存的全部更改
注意:对比的参照点仍然是缓冲区中的内容,将当期那工做目录中的文件同缓冲区作对比it
git diff --cached
功能:将缓冲区的内容同快照中的内容进行对比io
git diff HEAD
功能:将当前工做目录中的文件,同快照中的内容进行对比,HEAD(当前工做分支)
git commit -m '对本次提交的快照的说明'
功能:将缓冲区中的内容添造成一次快照(也就是打一个版本)
git commit -am '对本次提交的说明'
功能:同git commit -m 的功能相似,可是,因为多了一个a参数。这样就有一个隐含的操做,将已经追踪的文件先进行自动提交(注意:是已经追踪到的文件)!
git log :
功能:显示从最近到最远的提交日志
我的体会是,咱们最想要的就是commmitid和对本次提交的说明
git reset --hard commitid
功能:回到指定的某个版本,注意,是连通当前的工做区一块儿回去,很可怕的一个命令。若是你并无对当前的工做目录进行提交,并且还执行了这个操做,那么就杯具了,你上次提交后全部的更改内容就所有丢失而来,本人在这方面就犯了很大的错误!想一想都是血泪啊!
git reflog
功能:用来记录你的每一次命令,这样咱们就能够看到全部的commitid了(而git log只可以用来查看当前版本的commitid以及之前提交版本的commitid)
git checkout -- file
功能:将缓冲区或者快照中的指定文件恢复到当前的工做目录
注意:--是必需要写的,若是不写的话,就成为了分支的切换。
同时,咱们应该明白,恢复的前后顺序。执行完改命令后,若是缓冲区中有该文件的话,那么工做目录就会恢复到缓冲区的样子!若是缓冲区没有文件的话,那么就会恢复到最新提交的版本上面!
git reset HEAD file
功能:将缓冲区中的指定文件,回退到最新的一次commit版本。
这个命令仍是颇有用的,若是咱们误操做了,而且进行了add,那么此时再用 git checkout --file 恢复工做区中的内容的话,就没有任何效果了!可是执行git reset HEAD file这个命令,就能够将最新一次的commit中的file文件拉回到缓冲区中,而后在经过git checkout -- file命令,恢复到工做区中!
git branch
功能:展示当前的全部分支,前面带有 "*" 是所在分支
git branch 分支名
功能:建立一个新的分支
git checkout -b 分支名
功能:建立新分支,并切换到改分支上
git branch -d 分支名
功能:删除指定的分支(不能够删除当前所在分支)
git checkout 分支名
功能:用于在不一样的分支之间进行切换
注意:因为版本的不一样,在操做上可能有所不一样!在某些版本上必须先进行git add , commit 以后,才能进行分支的切换!(1.8.3以前的貌似都须要提交才行),而有的分支则不须要进行此操做!
git merge 分支名功能:将指定的分支合并到当前的分支关于分支的合并我想说一下,本身的理解,我的认为所谓合并,实际上是对全部修改的合并!这里举个例子说明会更好一些:A做家写初步完成了一篇长篇小说的初稿,可是呢仍然须要对这篇长篇小说进行修修改改!处于对质量的严格要求!此时A做家找到了B做家,但愿B做家提出宝贵的意见,让他对这篇小说也进行修改!等修改的差很少了,A做家,就让B做家把他的修改内容发给A做家,A做家再将B做家的修改添加到本身既有的修改上面!(--这应该就是合并)若是A做家的修改的内容,B做家也进行了修改,那么就有A做家去决定改要谁的修改!(--这就是解决冲突)