Git分布式版本控制系统,很是流弊的一个版本管理系统,此博文介绍下git经常使用的命令,适用于不会Git版本控制的菜鸟,对于维护Git服务器的大牛来讲,跪求指教,其实我也是菜鸟。linux
Git是被压迫出来的产物,由于BitMover公司收回了版本控制系统BitKeeper对linux社区无偿使用的权限,而linux的开发迫切须要一个好的分布式版本控制系统,咱们心高气傲的linux之父linus不肯意向BitMover低头付费,一辈子气就花了不到一个月的时间用本身的C写出了如今最流行的分布式版本控制系统git,在这里很是感谢BitMover公司的推动,有了如今很是好用的Git,不的不说,linus仍是很流弊的。git
1. 在Git中设置你的名字和email这些是提交commit的时候的签名github
git config --global user.name "yatian"服务器
git config --global user.email "yatian@126.com"分布式
2. 建立版本库。ide
# 首先找一个合适的地方建立一个空文件夹网站
mkdir learngitspa
# 经过git命令把这个目录变成Git能够管理的仓库版本控制
git init开发
注意:在执行完git init这个命令后,会提示建立了一个空的仓库,而且有一个隐藏的文件'.git',这个文件是跟踪管理版本库的,没事千万不要手动修改这个文件,容易将版本库搞坏掉。
# 编写一个文件readme.txt必定要放到 learngit 的目录下,不然在这个仓库中是找不到的
git add readme.txt
# 告诉git把文件提交到仓库中
git commit -m "wrote a readme file"
-m 在这里是解释本次操做的, 方便之后查找历史记录
# 查看当前git有没有修改过的文件及新上传的文件
git status
# 查看文件是那些为有过修改及详细查看修改的文件
git diff readme.txt
# 将已经存在的文件,修改后提交方式
git commit -a -m "lanyulei"
# 查询git全部修改记录的命令
git log [--pretty=oneline]
单独执行git log输入的内容可能过多,加上后面的参数能够简要的输入内容。"[]"表明无关紧要
# 回退版本,首先,Git必须知道当前版本是哪一个版本,在Git中,用HEAD表示当前版本,也就是最新的提交3628164...882e1e0(注意个人提交ID和你的确定不同),上一个版本就是HEAD^,上上一个版本就是HEAD^^,固然往上100个版本写100个^比较容易数不过来,因此写成HEAD~100。
回退到上一个版本中
git reset --hard HEAD^
想要回去的话, 也是能够的,可是前提是,还能记得以前的commit id,Git老是有后悔要能够吃的,可使用git reflog来查看你的历史操做
git reflog
git reset --hard 123456
# 工做区版本和版本库中的最新版本比较
git diff HEAD -- readme.txt
# 丢弃工做区的修改,就是想刚刚修改的东西,还原
git checkout -- readme.txt
# 当你想将暂存区的修改回退的时候,使用一下命令
git reset HEAD file
# 当你删除工做去文件的时候,git status就会提示你工做区和版本区的版本不一致,一是确实要从版本库中删除该文件
git rm file
git commit -m "delete file"
二是,你误删除了工做区的文件,想要恢复,那么撤销工做区域的修改就能够了
git checkout -- file
3. 远程仓库
# 自行建立github网站的帐号,建立一个共有的版本库
# 要关联一个远程代码库
git remote add origin git@github.com:yatian/test.git
origin 远程库的名字,是Git中的默认叫法,能够是别的
# 将代码推送至远程库
git push [--force] -u origin master
注意:第二次提交的时候,直接提交就能够
git push origin master
# 克隆代码
git clone git@github.com:yatian/gitskills.git
4. 分支管理
# 建立一个新的分支,而且切换到这个新的分支
git checkout -b dev
git checkout命令加上-b参数表示建立并切换,至关于如下两条命令:
git branch dev
git checkout dev
# 查看当前所在分支
git branch
# 合并某分支到当前分支
git merge dev
# 删除分支
git branch -d dev