1. 最近使用Git命令比较多, 把遇到的问题记录一下

用 git diff 来比较项目中任意两个版本的差异。

 总结了一下git diff能够比较以下几种情况,但是又不限于这些

1) 比较本地branch之间的不同

2)比较本地branch 与远程分支的不同

3)比较 远程分支的不同(不需要checkout就可以比较)

4) 比较不同的commitId之间的区别

2. 详细使用

1) git diff 默认什么都不加,会比较当前所在的分支,与远程链接的分支之前的区别

2) git diff会将两个版本文件的不同以及文件具体不同的地方都列举出来, 如果只想获取文件列表, 使用--name-only 参数或者--name-status参数



3) 最近有一个需求是获取最新测试环境的版本与线上版本有哪些类改变(更新)了, 测试环境和线上版本的commitId可以获取到,现在就剩下怎么使用diff了

和git branch 不一样, 如果之前没有将某个commitId的信息拉下来, 那就diff不了, 会报以下错误:

fatal: bad object xxx

解决办法:

第一步: git checkout master; git pull  不清楚commitID是属于哪个分支的,那就先切换到master上(git checkout master) 然后git pull(git pull除了拉取当前分支代码以外,还会拉取git相关提交等信息)

第二步:git diff commitId1 commitId2  --name-only 就可以查看两个版本的文件区别了

获取某个文件某两个版本之间的不同

git diff commitID1 commitID2 filename








Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐