git使用手册
git使用手册
由 赵庆鹏创建, 最后修改于十二月 14, 2018
一、文件比较
1. 新建两个文件hello/world,内容可自定义,两个文件的内容,需要不相同,进行文件比对。2. 使用diff -u hello world > diff.txt,进行文件比对,查看效果。3. 使用cp hello world对文件进行覆盖,并使用patch world < diff.txt对world文件进行恢复。4. 使用cp world hello对文件进行覆盖,并使用patch -R hello < diff.txt对hello文件进行恢复。
二、字符集设置
1. 乱码:git config --global core.quotepath false2. 设置字符集:git config --global i18n.logOutputEncoding gbk(log输出)/ git config --global i18n.commitEncoding gbk
三、初始化全局参数
1. 设置全局用户参数:git config --global user.name "yourname"2. 设置全局用户邮箱参数:git config --global user.email "youremail"3. 设置全局用户gitreview参数:git config --global gitreview.username "yourname"4. 设置命令别名:git config --system alias.st status/alias.ci commit/alias.co checkout/alias.br branch5. 设置颜色显示:git config --global color.ui true6. 创建一个目录并初始化git:mkdir demo && git init7. 编辑.git/config文件:git config -e8. 编辑.gitconfig文件:git config -e --global9. 编辑系统配置:git config -e --system10. 删除用户配置信息:git config --unset --global11. 设置全局忽略文件/设置本地忽略文件 git config --global core.excludesfile / git config core.excludesfile
四、操作指令
1. git status 显示工作路径下已修改的文件,-s 精简输出,-b 显示当前工作分支2. git diff <commit1> <commit2> -- <path> 显示与上次提交版本文件的不同,HEAD 将工作区和HEAD相对比差异,--cached/–staged 提交暂存区和版本库中文件的差异 <path1><path2> 非git目录/文件差异比较3. git add & git add -p <file> 把当前所有修改添加到下次提交中/把对某个文件的修改添加到下次提交中 git add -u 将本地有改动(包括修改和删除)的文件标记到暂存区 git add -i 交互式添加文件 git add -f <filename> 强制指定文件名4. git grep <contect> & git grep <contect> <tag> 从当前目录的所有文件中查找文本内容/从当前目录的所有文件中查找某一个版本的文本5. git rev-parse --git-dir 显示版本库.git目录位置6. git rev-parse --show-toplevel 显示工作区根目录7. git rev-parse --show-prefix 相对于工作区根目录的相对目录8. git rev-parse --show-cdup 显示从当前目录(cd)后退(up)到工作区的根的深度9. git commit --allow-empty -m "yourmessage" 允许空白提交10. git log --pretty=fuller/raw --graph <id> / --oneline 显示全部commit log信息/显示每个提交对象的parent属性 / 显示跟踪链 / 对父提交的关联实现对提交历史的追溯11. git commit --amend --reset-author 对提交进行修补,以改正前面提交中错误的信息/将author的ID同步进行修改12. git log --stat / --decorate / -p / -m 显示每次提交的文件变更统计 / 显示该提交关联的引用 / 显示日志的同时显示改动 / 显示从哪个提交修改的13. git reset HEAD,缓存区目录树重写,将被master分支指向的目录树替换,工作区不受影响14. git rm --cached <file> 从缓存区删除文件,工作区不做改变15. git checkout . / git checkout -- <file> / git checkout HEAD . / git checkout HEAD <file> 前两者使用暂存区全部的文件或指定的文件替换工作区的文件,后两者使用HEAD指向的master分支中的全部或部分文件替换暂存区和工作区文件16. git clean -fd 清除当前工作区中没有加入版本库的文件和目录(非跟踪文件和目录) -nd 查询哪些文件会被删除,防止误删除17. git ls-tree / ls-files --with-tree 查看暂存区目录树文件大小/查看暂存区目录树存放位置,并指定树的位置18. git write-tree 将暂存区的目录树写入git对象库19. git write-tree | xargs git ls-tree -l -r -t 递归操作显示目录树的内容20. git stash 保存当前工作进度,暂存区/工作区状态保存 list 查看保存的进度 pop [--index] [<stash>] 恢复最新保存的进度,提供<stash>参数,则从该<stash>中恢复,回复后,则删除该<stash> --index 除恢复工作区文件外,还可尝试恢复暂存区 [save [--patch] [-k | --[no-] keep-index] [-q] | --quiet] [<message>] eg: git stash save "message..." --patch 显示工作区和HEAD的差异,通过编辑差异文件,决定最终保存工作区的内容,并排除无关内容 -k 或 --keep-index参数,保存后不会重置暂存区 apply [--index] [<stash>] 与pop类似,但不删除恢复的进度 drop [<stash>] 删除进度,默认删除最新进度 clear 删除所有进度 branch <branchname> <stash> 基于进度创建分支21. git cat-file -t <id>/ -p <id> 查看id的类型 / 查看id的详情 git show <tag> --stat 查看和分析某个提交22. git branch 显示当前工作分支 -v 显示详情 23. git reset 重置,将HEAD游标指向任意一个存在的提交ID --hard 破坏工作区未提交的改动 --soft 只修改引用的指向,不改变暂存区和工作区 --mixed 更改引用的指向及重置暂存区,不改变工作区24. git reflog show master / expire --expire=<date> -all 查看master分支修改的记录,用于reset后的恢复 / 强制让<date>之前的记录全部过期25. git merge [-s <strategy>] [-X <strategy-option>] <commit> ... 合并,将其他分支的提交和当前分支的提交进行合并 -s 设定合并策略 -X 设置合并策略提供附件的参数 / --no-commit 合并后,放入暂存区,检查后,合并到共享仓库 / 合并策略有:① resolve 只能合并两个头,三向合并策略,最安全、最快的策略 ② recursive 只能合并两个头,三向合并策略,默认合并策略 a. ours 冲突时,选择本地当前分支版本,忽略其他版本,若不冲突,则合并他人改动 b. theirs 丢弃自己的版本,选择他们的版本 c. subtree[=path] 子树合并策略 ③ octopus 两个以上的合并头指针,拒绝执行手动解决合并 ④ ours 合并任意数量的头指针,合并结果总是使用当前分支,忽略他人分支 ⑤ subtree 合并A、B,若B、A中一个子树相同,B先匹配A的树结构26. git checkout [-q] [<commit>] [–] <paths> / git checkout [<branch>] / git checkout [-m] {[-b | --orphan] <new_branch>} [<start_point>] commit为可选项,覆盖工作区,不会该表HEAD头指针 / 改变HEAD头指针,若不使用branch参数,则对工作区进行检查 / 创建和切换新的分支,新的分支以<start_point>指定的提交开始创建27. git describe 将最新提交显示为一个易记的名称,选取离该提交最近的里程碑作为“基础版本号” --dirty 显示tag版本号中文件已被修改标记 --always 显示精简提交ID28. git mv <old_filename> <new_filename> 修改文件名29. git archive -o <zipfile> HEAD <dir> / --format=tar --prefix=1.0/ v1.0 | gzip > foo-1.0.tar.gz 归档压缩 -o 指定压缩文件名 HEAD 指定分支 --format 指定压缩格式 --prefix 指定tag30. gitk -all 显示所有分支 --since="2 weeks ago" 两周内的所有提交 <tag> <dir>/<file> 某个tag以来,针对dir/file的提交31. git rev-parse --symbolic --branches 显示分支信息 --tags 显示里程碑信息 --glob=<branch> 显示定义的所有引用32. git rev-parse --oneline <branch1> <branch2> ... 显示分支的所有历史提交 33. git blame <filename> 文件追溯 -L n,m 查看从第n行开始,往后m行的数据34. git bisect 二分查找 good/bad 好提交/坏提交 存放位置refs/bisect/good--/bad / reset 结束正在进行的出错的二分查找 / replay logfile 通过日志文件恢复进度,重启二分查找 / run sh <script> 运行自动化测试脚本35. git cherry-pick <branch> 拣选操作,将其他分支连接到checkout分支,注意,在cherry-pick时,本地未提交的内容,均需要进行提交,否则,会触发cherry-pick的正在进行操作,即amend,操作完成后,需要--continue参数继续。36. git rebase --onto <newbase> <since> <till> 将指定范围内的提交,嫁接到另外一个提交之上 --onto 提交1 提交2 本地提交 / <newbase> 里程碑编号 将提交嫁接到里程碑上 / -i <since>...<till> 交互式操作,将多个提交悉数放在一个文件中进行提交37. git commit-tree 从目录树创建提交38. git revert 反转提交39. git clone 版本库克隆 <repository> <directory> 将前者指向的版本库创建一个克隆到后者目录中 / --bare <repository> <directory.git> 不包含工作区的克隆,不对上游版本库进行注册 / --mirror <repository> <directory.git> 不包含工作区的克隆,对上游版本库进行注册,并可使用git fetch和上游版本库持续同步40. git pull/push 提交/拉回 [<remote-repos> [<refspec>]] 前者参数可省略,是远程版本库的地址或名称,后者为引用 / git push -f 强制推送 / git pull == git fetch + git merge41. git pack-refs -all / --all--prune 打包所有refs文件,到packed-refs中,默认90天前记录清理 / 未关闭gc.packrefs,可实现对引用的打包42. git show-index < <index路径> 43. git fsck / git prune 查看版本库中包含的没有被任何引用关联的松散对象 --no-reflogs 找到看不到未被关联到的对象 / 清理未被引用的松散对象44. git gc / --prune=<date> 对分散在 .git/refs下的文件打包到.git/packed-refs中 / 对指定日期之前的未被关联的松散对象进行清理,将时间参数传递给 git prune --expire <date>,默认清楚2周以前未被关联的对象45. git repack 对有引用关联的对象进行打包,未被引用关联的对象不做操作46. git tag 显示当前版本库的tag列表 -n<num> 显示<num>行说明 -a <tagname> [<commit>] / -m <msg> <tagname> [<commit>] 创建带说明的里程碑 -s <tagname> [<commit>] / -u <key-id> <tagname> [<commit>] 创建带GunPG签名的里程碑 -u参数指定私钥进行签名 -d 删除里程碑 <tag><commit-id> 恢复误删除的里程碑 -f / --force 强制覆盖已有的里程碑47. git name-rev 显示提交ID及其对应的一个引用,默认优先使用分支名,若提交上没有相对应的引用,则会使用最新提交上的引用名称并加上向后回溯的符号~<num> --tags 优先使用里程碑48. git ls-remote 查看上游版本库的引用49.
相关文章:

python 乒乓球_python乒乓球
这是我用python编的一个小游戏,需要下载simpleaudio库,喜欢的可以玩。 以下是源代码: import turtle as t import simpleaudio as sa yeahsa.WaveObject.from_wave_file(‘bounce.wav’) #创建背景 game t.Screen() game.title(‘双人乒乓球…

《深入浅出Windows Phone 8应用开发》
章节 第1章 概述第2章 开发环境第3章XAML简介第4章 常用控件第5章 布局管理第6章 数据存储第7章 图形动画第8章 多媒体 第9章 启动器与选择器 第10章 手机感应编程第11章 MVVM模式第12章 Silverlight Toolkit组件第13章 网络编程第14章 异步编程与并行编程第15章 联系人和日程安…

CentOS7.4到Elasticsearch一路坑(五)
来来,zookeeper我们聊聊 zookeeper我是搭建了一个集群的,但是搭建完发现,bin/zkServer.sh status一直是不正常的 看了一下日志,的确有问题(有问题你还起来了?) 从这篇文章参考了一下:…

轻量级git服务器 Gogs git 服务器搭建
gogs搭建教程: 原文链接: https://garthwaite.org/docker-gogs.html 内容: Dockerized Gogs git server and alpine postgres in 20 minutes or less // under docker I’ve babysat gitlab omnibus before and it wasn’t any fun. So when a group of volunteer…

akaze特征匹配怎么去掉不合适的点_SIFT特征点
SIFT特征点图像特征点检测一直是研究的热点,从早期的harris角点检测开始,一直有很多人关注图像特征点的检测。最早人们关注图像中的角点,主要是因为角点能够代表图像中的一些特征。比如,通过检测两幅图像中的角点,可以…

fopen 中 按文本读写与按二进制读写 实例
参考:http://blog.csdn.net/hinyunsin/article/details/6401854 #include <stdio.h>int main(int argc, char *argv[]) {char he[20] "hello world\n";FILE *outfile fopen("t.txt", "wt");fwrite(he, sizeof(char), 20, out…
狼奔代码生成工具使用心得
狼奔代码生成工具(http://ltfwan.d33140.jit8.cn)是一款为程序员设计的代码生成器,更是一款软件项目智能开发平台,它可以自动生成ASP.NET页面及后台代码,采用了面向服务的架构(SOA)。那么,要如何通过狼奔代…

h5在手机端实现简单复制
<a href"https://blog-static.cnblogs.com/files/ruanqin/clipboard.min.js">下载clipborrdjs</a> 下载地址:https://blog-static.cnblogs.com/files/ruanqin/clipboard.min.js html中: <div id"app"> <a hr…

MQTT topic匹配规则
MQTT topic匹配规则 原文连接: https://blog.csdn.net/JiangCheng817/article/details/81333893 内容: 主题层级分隔符 “/”: 表示层级关系 单层通配符 “”: 订阅消息时使用,匹配一层主题如 a/ 匹配诸如 a/b a/c 但是不能匹配 a/b/c,特别的单独的可…

产品经理岗位职责说明_技术负责人岗位职责,五大方面,超越岗位抓住未来才是技术大牛...
技术负责人一般指建设领域、生产制造领域、电子商务领域,负责全过程的技术决策、技术指导。技术负责人的岗位职责包含五个方面:技术职责:负责具体技术方案设计思路、关键参数等技术决策,负责对所有技术人员进行具体技术实施时的技…

Jane Eyre
Do you think I could stay here to become nothing to you? Do you think because I am poor , and obscrue, and plain that I am soulless, and heartless? I have as much soul as you and fully as much heart. And if God gifted me beauty and wealth, I should have …

Ubuntu 10.04 LTS 网站权限不够
wordpress不能自动升级config文件没法写找不到目录wordpress修改无法保存。。。。这些都是权限不够。解决办法:给apache一个访问www目录的权限,一般linux的网站目录是/srv/www/此时用下面的命令:chown www-data:www-data /srv/www/ -r

简单配置nginx反向代理,实现跨域请求
简单配置nginx去做反向代理,实现跨域请求 简单介绍nginx的nginx.conf最核心的配置,去做反向代理,实现跨域请求。 更多详细配置,参考nginx官方文档 先介绍几个nginx命令 打开nginx.conf文件/usr/local/etc/nginx/nginx.conf重新加载…

c# redis hashid如何设置过期时间_Redis中Key过期策略amp;淘汰机制
1. Redis中设置Key过期时间我们有两种方式设置过期时间1.1 设置多久后过期设置一个 key 10s 过期,可以这样127.0.0.1:6379> SET key value EX 10127.0.0.1:6379> SET key value PX 10000PX 后面是毫秒ms,EX是秒。设置完成后,10s内&…

在CISCO路由器上配置DHCP与DHCP中继
企业网络中DHCP环境的搭建 企业DHCP需求描述: 在大型企业中,一般都有很多个部门,各部门之间有时要求不能互通,这可以通过使用VLAN来解决,但是上千个人IP配置也是一件极大耗费人力的事。所以我们迫切需求一种全自动的&a…

MQTT消息长度限制
原文连接: https://stackoverflow.com/questions/34522053/what-is-the-maximum-message-length-for-a-mqtt-broker 内容: 单条消息默认限制大小256MB,可以通过配置修改 It’s not entirely clear what you’re asking here, so I’ll answer both pos…

jQuery EasyUI API 中文文档 - DataGrid 数据表格
扩展自 $.fn.panel.defaults ,用 $.fn.datagrid.defaults 重写了 defaults 。依赖panelresizablelinkbuttonpagination用法1. <table id"tt"></table> 1. $(#tt).datagrid({ 2. url:datagrid_data.json, 3. columns:[[ 4. …

point-to-point(点对点) 网口
点对点连接是两个系统或进程之间的专用通信链路。想象一下直接连接两个系统的一条线路。两个系统独占此线路进行通信。点对点通信的对立面是广播,在广播通信中,一个系统可以向多个系统传输。 点对点通信在OSI协议栈的物理、数据链路层和网络层中定义。 点…

springboot中文文档_登顶 Github 的 Spring Boot 仓库!艿艿写的最肝系列
源码精品专栏中文详细注释的开源项目RPC 框架 Dubbo 源码解析网络应用框架 Netty 源码解析消息中间件 RocketMQ 源码解析数据库中间件 Sharding-JDBC 和 MyCAT 源码解析作业调度中间件 Elastic-Job 源码解析分布式事务中间件 TCC-Transaction 源码解析Eureka 和 Hystrix 源码解…

浏览器缓存网站静态文件
当用户第一次访问你的网站时,让用户的浏览器缓存网站的静态文件,如图片\CSS\JS等,然后接访问接下来的页面就会直接调用浏览器的缓存而不是重新从服务器下载,这样既节省带宽和流量又加快了用户打开网页的速度,一石三鸟,…

MQTT 心跳和keepalive配置
MQTT 心跳和keepalive配置 内容: 正常MQTT 服务器端会配置一个超时时间,一般为60s, 在这个时间段内一个连接如果没有数据传输的话,服务端会主动断开连接以释放资源, 有两种方式可以规避这个问题: 方式1: 最为简单&a…

android开发我的新浪微博客户端-登录页面功能篇(4.2)
上一篇中完成了如上图的UI部分的实现,现在继续来讲功能的实现,用户登录操作主要就是账号列表显示和选择账号登录两个功能其他的都是些简单的辅助功能,首先是点击id为iconSelectBtn的ImageButton时显示用户选择窗口,这个时候去数据…

大脚本运行常见问题总结
1. Allowed memory size of 8388608 bytes exhausted 出现原因:脚本运行超过最大运行时间 解决方法:1 ) 修改 php.ini 文件。将memory_limit 由默认值改成合适的大小,重启服务器。 2)在脚本中加入 ini_set("memory_limit&qu…

MQTT Qos类型解释
MQTT Qos类型解释 原文连接: https://blog.csdn.net/yangguosb/article/details/78653228 内容: Qos0 发送者只发送一次消息,不进行重试,Broker不会返回确认消息。在Qos0情况下,Broker可能没有接受到消息,流程如…

对做技术的一点思考
做技术在中国有没有前途?这个问题是每个在国内做技术的人都会思考的问题。在我看来,我们之所以会产生样的困扰,主要原因在于我们所谓的研发都是二次开发,国内任何公司,研究单位(除开严格保密的单位…

iis伪静态排除css_魔众系统伪静态规则怎么配
魔众系列系统目前已经有大量用户在使用,大家对于伪静态的配置一直有所疑惑,经过和技术小哥哥的协商,我们特意将三种不同的 HTTP 服务器配置文件分享给大家,方便大家参考。魔众系列系统目前已经有大量用户在使用,大家对…

R.drawable 转 bitmap
引用:http://zhidao.baidu.com/question/291703800.html Bitmap bmpBitmapFactory.decodeResource(r, R.drawable.icon); Bitmap newb Bitmap.createBitmap( 300, 300, Config.ARGB_8888 ); Canvas canvasTemp new Canvas( newb ); canvasTemp.drawBitmap(bmp, …

洛谷P3254 圆桌问题(最大流)
题意 $m$个不同单位代表参加会议,第$i$个单位有$r_i$个人 $n$张餐桌,第$i$张可容纳$c_i$个代表就餐 同一个单位的代表需要在不同的餐桌就餐 问是否可行,要求输出方案 Sol 比较zz的最大流 从$S$向$1-m$连流量为$r_i$的边 从$m 1$向$m n$连流…

设置commit 提交模板
设置commit 提交模板 建议提交 (.template)模板文件 放在用户目录(Doceuments)下 (~/Doceuments) 原文连接: https://blog.csdn.net/mafei852213034/article/details/51908049 内容: 1、在根目录建立模板文件 如 xxx_template文件&#…

listen函数的第二个参数_【图像处理】OpenCV系列十七 --- 几何图像变换函数详解(一)...
上一篇我们学习了仿射变换的warpAffine函数,知道了如何用这个函数对图像进行旋转、平移等操作,那么本节我们一起来学习一下与仿射变换相关的其他函数以及相关的几何图像变换。一、convertMaps()函数1、函数原型void convertMaps(InputArray map1, InputA…