Git - 使用命令和P4Merge进行diff

简介: P4Merge P4Merge是Git的一个第三发Diff和Merge工具(可视化冲突解决工具). 下载地址: https://www.perforce.com/downloads/visual-merge-tool 安装的时候只需要勾选p4merge即可: 然后需要把p4merge的路径添加到环境变量PATH里面.

P4Merge

P4Merge是Git的一个第三发Diff和Merge工具(可视化冲突解决工具).

下载地址: https://www.perforce.com/downloads/visual-merge-tool

安装的时候只需要勾选p4merge即可:

然后需要把p4merge的路径添加到环境变量PATH里面.

这样操作后, 就可以通过命令行启动p4merge了:

 

配置p4merge作为Git的diff tool:

git config --global diff.tool p4merge
git config --global difftool.p4merge.path "C:\Program Files\Perforce\p4merge.exe"

因为每次使用diff tool的时候, git会弹出确认框, 我们最好把这个确认框从全局范围内默认不启用:

git config --global difftool.prompt false

配置p4merge作为git的merge tool:

git config --global merge.tool p4merge
git config --global mergetool.p4merge.path "C:\Program Files\Perforce\p4merge.exe"
git config --global mergetool.prompt false

 

最后检查一下全局配置:

git config --global --list

OK.

 

下面准备一个项目, 现在的项目状态是:

添加一个README.md, 然后add并commit.

然后修改README.md 然后add

然后再修改README.md:

git status告诉我这个文件被修改了, 但是没有告诉我哪里被修改了.

为了知道更多的细节, 这里就需要使用 git diff命令了.

不加任何参数的情况下, 该命令

比较的是working directory里面, 被stage的变化 vs 没被stage的变化:

如果变化太多了显示不下, 想要退出的话, 就按q就行.

因为我配置了git difftool, 所以也可以使用 git difftool这个命令:

这就会弹出p4merge这个可视化工具, 可以清楚的看到变化.

左边的是stage的, 右边的是没有stage的.

 

比较working directory和最后一次commit:

git diff HEAD.

下面使用可视化的difftool: git difftool HEAD.

 

 

 

比较Staging 区和最后一次commit.

git diff --staged HEAD.

使用可视化工具: git difftool --staged HEAD:

 

 

只比较一个文件/路径.

再修改项目的另一个文件, 然后查看状态:

如果执行git diff的话, 那么两个文件都会被比较:

只想比较一个文件/路径的话就需要加参数:

git diff -- README.md:

也可以使用可视化工具:

git difftool -- README.md:

 

比较两个commit.

先查看历史: git log --oneline:

git diff xxx yyy

其中xxx和yyy都表示commit的 id, 最后一次commit可以用HEAD表示.

下面这个命令比较的是HEAD 和 HEAD的上一次:

git diff HEAD HEAD^.(这个命令在windows上可能有点问题, 请使用git bash):

使用可视化工具:

git difftool HEAD HEAD^:

HEAD^表示上一次commit, HEAD^^就表示上两次的commit, 以此类推, 也可以使用HEAD~2的形式, 它和HEAD^^是一样的. 也可以连着使用 HEAD^^~3就像当于HEAD^^^^^.

 

本地 vs 远程.

git diff master origin/master. (origin是远程github的引用名而已, 这个可以改.) 这就是比较本地和远程的master分支.

同样也可以使用可视化工具: git difftool master origin/master:

 

最后git push origin master.

 

本文就简单介绍了这些: p4merge, difftool, mergetool, git diff, git difftool, 各种情况的git diff.

 

下面是我的关于ASP.NET Core Web API相关技术的公众号--草根专栏:

目录
相关文章
|
1月前
|
缓存 数据可视化 网络安全
Git命令大全
Git命令大全
60 1
|
1月前
|
开发工具 git
Git教程:深入了解删除分支的命令
【4月更文挑战第3天】
56 0
Git教程:深入了解删除分支的命令
|
2月前
|
存储 Shell Linux
【Shell 命令集合 文件管理】Linux git命令使用教程
【Shell 命令集合 文件管理】Linux git命令使用教程
37 0
|
1月前
|
开发工具 git 开发者
Git常用命令大全:让你轻松驾驭版本控制
Git命令速查:`git init`新建仓库,`git clone`克隆,`git add`入暂存区,`git commit -m`提交,`git status`查看状态,`git log`查看历史,`git branch`创建分支,`git checkout`切换,`git merge`合并,`git pull`拉取更新,`git push`推送,`git remote -v`查看远程,`git checkout --`撤销本地修改,`git reset HEAD`取消暂存,`git reset --hard`回退版本。掌握这些,提升代码管理效率!
22 0
|
13天前
|
Shell 网络安全 开发工具
GIT常用命令
GIT常用命令
|
20天前
|
存储 Linux 开发工具
Git 分布式版本控制系统基本概念和操作命令
Git 分布式版本控制系统基本概念和操作命令
32 0
|
22天前
|
算法 Java BI
云效产品使用报错问题之平台上导出的统计数据和 git 中使用命令导出的数据统计都对不上,如何解决
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
1月前
|
存储 开发工具 git
Git大揭秘:掌握开发者必备的常用命令手册
Git大揭秘:掌握开发者必备的常用命令手册
15 0
Git大揭秘:掌握开发者必备的常用命令手册
|
2月前
|
算法 开发工具 git
【git 实用指南】git 增加 本地代码 git add 相关命令和复杂情况需求
【git 实用指南】git 增加 本地代码 git add 相关命令和复杂情况需求
99 0
|
2月前
|
Shell Linux 开发工具
【Shell 命令集合 系统管理 】Linux 查看当前Git仓库的提交历史 gitps命令 使用指南
【Shell 命令集合 系统管理 】Linux 查看当前Git仓库的提交历史 gitps命令 使用指南
25 0