git比较多个文件在两个分支下的差异
2018-02-12 17:00
417 查看
简介
一般工作中,我们每次代码测试通过后,代码需要合并到master分支,并将master分支的代码发布到线上。在合并回master过程,如果涉及到多团队并行开发时,可能会遇到代码合并冲突。在修复冲突过程中,可能将别人的代码误删或自己的代码被别人误删。这时我们如何快速判断,master分支上包含了本次开发功能的所有代码?本文主要介绍如何通过管道命令,快速地找出本次需求中开发过的文件在master分支和测试环境分支下的代码差异。示例
从上图可知,从master拉取新分支名为test,且该分支上有两个提交。
提交内容如下
commit1的提交内容有:创建了test1和test_dir/test2文件,并添加内容
commit2的提交内容有:修改test2文件的内容
如何找到一次需求开发中所有修改或新建的文件列表(即查找连续commit修改文件列表)
将分支切换到当前的需求的开发分支git checkout '分支名'
找到分支拉取时的基点
HEAD 当前最新commit HEAD^ 上一个commit HEAD^^ 上上个commit HEAD~N (N为整数) 前N个commit 也可以是具体的commit id值
查找完整命令
git diff --name-only HEAD^^ or git diff --name-only d4e1b3f03feec5bcd60508959dc70f29cfe1bc41 # 结果 test1 test_dir/test2
过滤掉不关心的文件/文件夹
git diff --name-only [HEAD or commit id] | grep -v [要过滤的文件名/文件夹名] 例: git diff --name-only HEAD^^|grep -v test_dir 结果 test1
比较某文件在两个分支下的差异
git diff 分支1名 分支2名 文件名 例: git diff test origin/master test1 diff --git a/test1 b/test1 deleted file mode 100644 index 58c9bdf..0000000 --- a/test1 +++ /dev/null @@ -1 +0,0 @@ -111
某期需求涉及到多个文件比较
git diff --name-only HEAD^^|grep -v test_dir |xargs git diff test master
查看原文:https://www.huuinn.com/archives/558
更多技术干货:风匀坊
关注公众号:风匀坊
相关文章推荐
- git比较两个分支的文件的差异
- Git比较两个分支间所有变更的文件列表
- git 比较同一文件的不同的两个版本之间的差异
- git提取出两个版本之间的差异文件并打包 linux命令行
- python比较两个文件的差异
- shell diff 比较两个文件的差异
- 快速比较两个TXT文件的差异
- 使用DOS比较两个txt文件的差异
- Linux用diff比较两个文件的差异
- git 对比两个分支差异
- diff 比较两个文件的差异
- git 对比两个分支差异
- git 文件回滚,比较差异命令拾遗
- git diff 比较文件差异时,中文显示为乱码的问题。
- diff 比较两个文件的差异
- git diff 比较两个版本的差异
- diff 比较两个文件的差异
- VS Code比较不同项目的两个文件差异
- Git diff 比较两个版本的差异
- 两个大文件,比较这两个大文件的差异