写在前面
最近在学习廖老师关于Git教程的文章,觉的很棒,在此记录下,备忘Git教程。
关于版本控制系统(简单整理)
集中式:SVN
版本库集中存放在中央服务器中,干活的时候,先从服务器中获取最新的版本—》修改后—》提交到中央服务器中
- 优势:使用简单。有权限配置,方便管理员找那个空每个开发者的权限。(不知道这算不)
- 劣势:必须联网,网速慢简直就灾难。当然,中央服务器宕机的话,也就无法协同工作了
分布式:Git
每个人的电脑上都是一个完整的版本,可以在不联网的情况下对版本库使用
- 优势:对于版本库的修改不必联网解决,具有强大的分支管理,此外还有很多
- 劣势:使用难度较大
Git安装
- 关于安装请参考教程与官网,或自行谷歌百度
重要命令整理
查看帮助文档:git help
- 最常用的 git 命令有:
- add
添加文件内容至索引
- bisect
通过二分查找定位引入 bug 的变更
- branch
列出、创建或删除分支
- checkout
检出一个分支或路径到工作区
- clone
克隆一个版本库到一个新目录
- commit
记录变更到版本库
- diff
显示提交之间、提交和工作区之间等的差异
- fetch
从另外一个版本库下载对象和引用
- grep
输出和模式匹配的行
- init
创建一个空的 Git 版本库或重新初始化一个已存在的版本库
- log
显示提交日志
- merge
合并两个或更多开发历史
- mv
移动或重命名一个文件、目录或符号链接
- pull
获取并合并另外的版本库或一个本地分支
- push
更新远程引用和相关的对象
- rebase
本地提交转移至更新后的上游分支中
- reset
重置当前HEAD到指定状态
- rm
从工作区和索引中删除文件
- show
显示各种类型的对象
- status
显示工作区状态
- tag
创建、列出、删除或校验一个GPG签名的 tag 对象
命令 ‘git help -a’ 和 ‘git help -g’ 显示可用的子命令和一些指南。参见‘git help <命令>’ 或 ‘git help <指南>’ 来查看给定的子命令帮助或指南。
常用命令用法
Git安装好后,设置用户的姓名和邮箱(为保证提交时提交者和作者信息的正确性):
git config –global user.name “xxx”
git config –global user.email “xxx@xxx.com”初始化仓库(将当前目录生成版本库)
git init添加文件到暂缓区
git add 文件名提交文件到版本库
git commit -m ‘说明信息’状态查询
git status查看尚未暂存的文件更新部分,不加参数
git diff命令 释义 git diff 文件名 查看工作区内指定文件修改的内容 git diff –stat 以简单的结果输出不同内容 git diff –cached 查看已经暂存起来的文件和上次提交时文件的差异 git diff HEAD 比较工作区与提交的版本库的区别 git diff HEAD^ 比较工作区与上次提交的区别 git diff 版本号1 版本号2 比较提交的两个版本间的区别 查看提交的历史信息
git log只显示当前分支下commit记录
命令 释义 git log -n(正整数) 查看最近n次提交历史记录 git log file 查看指定文件的提交记录,file可以是标签、分支等 git log 版本号 查看指定版本包括commit的详细记录 git log –pretty=oneline 单行显示提交历史信息 git log -p -n 查看最近N次提交的差别 –graph 以简单的图形方式列出提交记录 –author=someone 查询指定作者的提交记录 关于format的格式参数
参数 释义 %H 提交对象(commit)的完整哈希字串 %h 提交对象的简短哈希字串 %T 树对象(tree)的完整哈希字串 %t 树对象的简短哈希字串 %P 父对象(parent)的完整哈希字串 %p 父对象的简短哈希字串 %an 作者(author)的名字 %ae 作者的电子邮件地址 %ad 作者修订日期(可以用 -date= 选项定制格式) %ar 作者修订日期,按多久以前的方式显示 %cn 提交者(committer)的名字 %ce 提交者的电子邮件地址 %cd 提交日期 %cr 提交日期,按多久以前的方式显示 %s 提交说明 例如:$ git log –pretty=format:”%an %ae %ad %cn %ce %cd %cr %s” –graph
撤销操作
git reset取消git add<文件>到暂存区的更改,工作区不受影响
命令 释义 git reset HEAD 同git reset git reset – filename 将文件filename撤出暂存区 git reset HEAD filename 同上 git reset –soft HEAD^ git commit 的逆操作 git reset HEAD^ 工作区不变,暂存区会回退到上次提交之前 git reset –mixed HEAD^ 同上,–mixed可忽略 git reset –head HEAD^ 彻底回退到之前一次提交 git reset –head 版本号 回退到指定版本 git checkout – filename 撤销工作区的修改
查看整个本地存储所有的操作记录
git reflog
–relative-date 显示相对时间删除命令,最后需提交到版本库
git rm
未完待续!
参考
- http://www.cnblogs.com/gbyukg/archive/2011/12/12/2285419.html
- http://blog.youkuaiyun.com/dbzhang800/article/details/6418215
- http://www.cnblogs.com/wish123/p/3963224.html