git 如何提取已提交的文件_git取两次提交的文件列表,包含目录信息
1.用git rev-list HEAD取得版本号列表:
在SmartGit中看到的也是这样,验证了我们的猜想:
取到两个版本号之后,用git diff命令:git diff [--options] ... [--] […]
这里的[-options]我们填的是--name-status,指的是版本号,也就是每次版本的散列值,可以填前几位就可以了,git会自动识别。
--name-status选项,可以输出每个修改的文件的状态,添加,修改,删除还是重命名等。
输入命令git diff --help可以查看帮助文档:
--name-status
Show only names and status of changed files. See the description of the--diff-filter option on what the status letters mean.
--diff-filter=[(A|C|D|M|R|T|U|X|B)…[*]]
Select only files that are Added (A), Copied (C), Deleted (D), Modified (M), Renamed (R), have their type (i.e. regular file, symlink, submodule, …) changed (T), are Unmerged (U), are Unknown (X), or have had their pairing Broken (B). Any combination of the filter characters (including none) can be used. When* (All-or-none) is added to the combination, all paths are selected if there is any file that matches other criteria in the comparison; if there is no file that matches other criteria, nothing isselected.
Also, these upper-case letters can be downcased to exclude. E.g. --diff-filter=ad excludes added and deleted paths.
其中M和1.txt之间是\t,后面的是目录和文件,如果是在ubuntu下的话,比如修改了文件夹aa下的my.txt
则:
M\taa/my.txt
因为linux上的文件夹目录都是/,windows的,没有测试有需要的可以测试。
如何要输出到文件中:
//>> 后加输出文件的路径、文件名和后缀名
git diff [branchA] [branchB] >>d:/diff/exportname.diff
linux的重定向命令
覆盖 git diff [branchA] [branchB]>a.txt
追加 git diff [branchA] [branchB]>> a.txt
命令的具体参考帮助文档:git diff --help
用git show命令也可以:
git show会在下面包含每个文件的对比信息(内容),这将会是大量字符串。
具体如果有目录下的文件不能显示区别,则两个命令的差异实践几次就会发现,可以解决问题的。
git 如何提取已提交的文件_git取两次提交的文件列表,包含目录信息相关推荐
- linux服务器拷贝目录文件夹,linux两台服务器之间文件/文件夹拷贝
linux两台服务器之间文件/文件夹拷贝 跨服务器拷贝需要用到的命令是scp. ----------------------拷贝文件夹--------------------------------- ...
- ubuntu16.04 Linux+xfce4的文件夹出现两种背景颜色+文件夹中右键打开终端失灵了.
好不容易把xfce4的文件夹弄成了夜间模式,结果用着用着发现文件夹有两种颜色 可以看到一种豆沙绿,一种是黑色的. 这个问题困扰我好几个月了..总是用着用着就发现居然变成了两种颜色. 还有更稀奇古怪的, ...
- 基于C语言实现把WAV双声道文件差分成两个单声道文件
本deemo基于下面这篇文章的deemo实现 基于C语言的 WAV 文件双声道转单声道的实现_快乐的老鼠的博客-CSDN博客_wav 双声道转单声道 #include <stdio.h> ...
- html提交按钮教学,html的两种提交按钮submit和button
转自:http://baiying.blog.51cto.com/1068039/1319784 html按钮有两种: 和登录 这两种在页面上看起来好像一样没什么区别,但是这两种是有区别的. 1,如果 ...
- 如果我已经开始重新设置基准,如何将两个提交合并为一个?
我正在尝试将2个提交合并为1个,因此我遵循了git ready中的"使用rebase压缩提交" . 我跑了 git rebase --interactive HEAD~2 在结果编 ...
- linux 文件 复制 工具栏,Linux(Ubuntu)光盘镜像文件制作及使用攻略
一.linux 下命令行制作光盘镜像文件 1. 使用cp命令 cp 命令用来复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到该 ...
- MySQL 为什么需要两阶段提交?
文章目录 1. 什么是两阶段提交 1.1 binlog 与 redolog binlog redo log 1.2 两阶段提交 2. 为什么需要两阶段提交 3. 小结 为什么要两阶段提交?一阶段提交不 ...
- 两阶段提交(Two-Phase Commit)
两阶段提交 两阶段提交是一种同步协议,是计算机网络尤其是在数据库领域内,为了使基于分布式系统架构下的所有节点在进行事务处理过程中保持原子性和一致性而设计的一种算法. 两阶段提交的执行过程 在两阶段提交 ...
- linux两种方式改变文件权限,Linux更改文件权限的两种方式
今天小编要跟大家分享一篇关于Linux更改文件权限的方式,喜欢Linux的小伙伴来看一看吧. 我们知道·Linux系统最主要的特点之一就是--Linux系统是多用户.多任务的操作系统. 何为多用户?就 ...
最新文章
- 简单protobuf
- Redis中Value使用hash类型的效率是普通String的两倍
- 分布式存储的三个基本问题
- 数学系学生的漫画,治愈了整个朋友圈
- 《第一行代码》学习笔记18-广播接收器Broadcast_Receiver(1)
- windows哪些版本可以免费升级win10
- 成功部署SD-WAN策略应注意的几个事项—Vecloud微云
- Gluon.vision的几类数据集
- vspythonqt混合_Qt混合Python开发技术:Python介绍、混合过程和Demo
- ASP.NET中常用输出JS脚本的类(改进版)
- xp精简工具_办公人士需要精简Win10吗?
- HashMap的put方法(Java7)和putVal方法(Java8)
- GridView类容器中的DropDownList联动
- 关于信噪比-draft
- 直线距离uva 11168 Airport(训练指南)
- jq ajax购物车,jquery制作的移动端购物车效果完整示例
- 静态ip设置失败解决办法
- TEM Imaging Analysis (TIA) for win10
- 8年开发,连登陆接口都写这么烂...
- 以太坊MEV黑暗森林发展史:从Gas战争到PBS