title author date CreateTime categories
git 使用 VisualStudio 比较分支更改
lindexi
2018-08-10 19:16:52 +0800
2018-2-13 17:23:3 +0800
git

有时候需要比较两个分支的不同,这时如果提交到 github ,那么默认就可以看到。但是这时因为没有ide的高亮或者其他的功能,看起来觉得不好。
默认的 VisualStudio 比较文件比 github 的用起来好很多,那么如何使用 VisualStudio 作为代码比较?

尝试打开一下 VS ,随意进行对比两个文件。需要找到一个工具,这个工具放在 TeamFoundation 文件夹里,我这里是 VisualStudio 2017 于是我的路径是C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\vsDiffMerge.exe 可以打开自己的文件夹进行搜索,找到这个软件。

然后从 cmd 打开,输入下面的代码

vsDiffMerge.exe 文件1 文件2

就可以看到,软件从 VisualStudio 进行对比

如果使用的是 Powershell ,那么可以输入 cmd 进入命令行

可以看到对比文件很好用,那么在 git 使用的默认比较分支是git difftool dev release 就可以比较两个分支,但是如何使用 vs 进行比较?

使用的方法实际上只需要修改一个文件

打开 .git 的 config 在文件最后加入下面的代码

[diff]
tool = vsdiffmerge
[difftool]
prompt = true
[difftool "vsdiffmerge"]
cmd = \"C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Enterprise\\Common7\\IDE\\CommonExtensions\\Microsoft\\TeamFoundation\\Team Explorer\\vsDiffMerge.exe\" \"$LOCAL\" \"$REMOTE\" //t
keepbackup = false
trustexistcode = true
[merge]
tool = vsdiffmerge
[mergetool]
prompt = true
[mergetool "vsdiffmerge"]
cmd = \"C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Enterprise\\Common7\\IDE\\CommonExtensions\\Microsoft\\TeamFoundation\\Team Explorer\\vsDiffMerge.exe\" \"$LOCAL\" \"$REMOTE\" //t //m
keepbackup = false
trustexistcode = true

其中的文件路径需要使用自己安装的。

如果找不到文件,可以使用在仓库的git的命令行输入下面代码

git config --global difftool.visualstudio.cmd "'C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/Common7/IDE/CommonExtensions/Microsoft/TeamFoundation/Team Explorer/vsdiffmerge.exe' \$LOCAL \$REMOTE Source Target //ignorespace //t"

git config --global mergetool.visualstudio.cmd "'C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/Common7/IDE/CommonExtensions/Microsoft/TeamFoundation/Team Explorer/vsdiffmerge.exe' \$LOCAL \$REMOTE \$BASE \$MERGED //ignorespace //m"
git config --global mergetool.visualstudio.trustExitCode true git config --global diff.tool visualstudio
git config --global merge.tool visualstudio

需要修改自己的文件所在,一般可以搜索找到。

如果想使用一个简单的方法,可以打开 VisualStudio 团队设置,然后设置使用 VisualStudio

忽略对比的文件夹

如果在 git 提交中,存在某个文件都是资源,在对比中,不停需要去看这些文件,感觉想把git卸了。但是git那么厉害,是不是有一个方法可以做到,忽略某个文件夹的更改。是的,下面我来告诉大家如何忽略这个文件夹。

例如需要忽略的文件是 c:\code\dx\resource 项目所在文件夹是c:\code\dx,dx就是我的名字,所以项目是假的。

使用 git 输入下面的命令就可以忽略 resource 文件夹

git difftool relase dev -- . ':!resource'

这个命令需要注意,-- . ':!要忽略的文件夹' 除了中文,其它的都是需要添加的。

2018-8-10-git-使用-VisualStudio-比较分支更改的更多相关文章

  1. git 使用 VisualStudio 比较分支更改

    有时候需要比较两个分支的不同,这时如果提交到 github ,那么默认就可以看到.但是这时因为没有ide的高亮或者其他的功能,看起来觉得不好 默认的 VisualStudio 比较文件比 github ...

  2. ###Git 基础图解、分支图解、全面教程、常用命令###

    一.Git 基础图解 转自:http://www.cnblogs.com/yaozhongxiao/p/3811130.html Git 图解剖析 git中文件内容并没有真正存储在索引(.git/in ...

  3. [Git]05 如何使用分支

     作者:Younger Liu, 本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 未本地化版本许可协议进行许可. 几乎每一种版本控制系统都以某种形式支持分支.使用分支意味着你可以从开发 ...

  4. git命令新建远程分支并推送,切换远程地址

    最近记性不好,老是忘记操作命令,记录下一下新建远程分支和切换.删除远程地址的命令: 1.查看当前分支:  git branch 2.查看所有分支:git branch -a 3.切换分支:git ch ...

  5. VS2013中使用git发布解决方案master分支的时候出现错误

    VS2013GIT基础用法请自行参考:不会Git命令,照样玩转Git 环境:VS2013+ 码云错误描述:在VS2013中使用git发布解决方案master分支的时候出现“无法将本地分支 master ...

  6. git学习4:分支管理

    每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支.截止到目前,只有一条时间线,这个分支叫主分支,即master分支,HEAD指向master,master指向提交,所以,HEAD指向的就 ...

  7. Git tag 给当前分支打标签

    原文已经找不到出处,重新整理格式,仅作个人收藏! 标签(Tag)可以针对某一时间点的版本做标记,常用于版本发布. 列出tag $ git tag # 在控制台打印出当前仓库的所有tag $ git t ...

  8. git命令之git tag 给当前分支打标签

    git tag - 标签相关操作 发表于 2011年06月29日 由 机器猫 标签可以针对某一时间点的版本做标记,常用于版本发布. 列出标签 $ git tag # 在控制台打印出当前仓库的所有标签$ ...

  9. 【Git】笔记4 分支管理1

    1.创建与合并分支 一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点: 每次提交,master分支都会向 ...

随机推荐

  1. webpack学习之—— Loaders

    loader 用于对模块的源代码进行转换.loader 可以使你在 import 或"加载"模块时预处理文件.因此,loader 类似于其他构建工具中“任务(task)”,并提供了 ...

  2. AppScan操作手册

    AppScan操作手册 转自:http://blog.51cto.com/zhouanya/1388681   1.SQL注入 1.1.什么是sql注入 所谓SQL注入(SQL Injection), ...

  3. 从0开始学习 GitHub 系列之「01.初识 GitHub

    转载:http://blog.csdn.net/googdev/article/details/52787516 1. 写在前面 我一直认为 GitHub 是程序员必备技能,程序员应该没有不知道 Gi ...

  4. Devexpress 中控件及GridView控件的Cell增加右键复制功能

    a) GridView中任何一个Cell增加右键复制功能GridHitInfo gridHitInfo = new GridHitInfo(); //用户接收GridView中单元格数据void gr ...

  5. 【等价的穿越】Burnside引理&Pólya计数法

    Problem 起源: SGU 294 He's Circle 遗憾的是,被吃了. Poj有道类似的: Mission 一个长度为n(1≤n≤24)的环由0,1,2组成,求有多少本质不同的环. 实际上 ...

  6. goland的下载安装破解并配置

    1.下载地址:https://www.jetbrains.com/go/ 2.安装:简单 3.破解:https://www.cnblogs.com/igoodful/p/9113946.html 4. ...

  7. thinkphp---display与fetch区别

    区别: ① display方法直接输出模板文件渲染后的内容,fetch方法是返回模板文件渲染后的内容 ② 有时候我们不想直接输出模板内容,而是希望对内容再进行一些处理后输出, 就可以使用fetch方法 ...

  8. MSSQL 为db创建user

    use [IBatisNet]GO if not exists (select * from master.dbo.syslogins where loginname = N'IBatisNet')B ...

  9. Directx11教程(17) D3D11管线(6)

    原文:Directx11教程(17) D3D11管线(6)       VS shader输出clip空间的顶点位置及参数信息(比如颜色)到一个FIFO中,之后PA(primitive assembl ...

  10. Directx11教程(6) 画一个简单的三角形(2)

    原文:Directx11教程(6) 画一个简单的三角形(2)      在上篇教程中,我们实现了在D3D11中画一个简单的三角形,但是,当我们改变窗口大小时候,三角形形状却随着窗口高宽比例改变而改变, ...