- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试在 Windows 8.1 系统上的 Git Bash 中使用 KDiff3 作为 difftool,我承认我对 Git 很陌生。当我尝试将暂存文件与提交文件进行比较时,我无法打开 KDiff3,而且我对如何处理它感到困惑。我在网上找到了将 KDiff3 设置为 merge 工具的说明,我想我需要做一些类似的事情来将它设置为 diff 工具(我还没有能够为新手找到足够明确的指导来设置 diff 工具,这就是我来这里的原因)。这是我在下载并安装 KDiff3 后所做的:
git config --global diff.tool kdiff3
git config --global difftool.kdiff3.cmd '"C:\\Program Files\\KDiff3\\kdiff3" $BASE $LOCAL $REMOTE -o $MERGED'
Git 没有向我吐出任何错误,所以也许这是正确的?我完全承认我不明白这里的语法!无论如何,当我尝试这个时:
git diff HEAD
我明白了:
error: cannot spawn kdiff3: No such file or directory
external diff died, stopping at MyFile.R
我环顾四周,看到一些人在 $PATH 设置不正确时遇到了类似的问题。我真的不知道 $PATH 是什么(如果有人能启发我,我将非常感激),但我为 KDiff3 (C:\Program Files\KDiff3\kidff3) 获得的路径肯定是kdiff3.exe 在我的机器上的位置。有什么建议吗?
提前致谢,正如我所说,我是 Git 的新手,所以如果我没有提供一些重要信息,请告诉我。
最佳答案
我建议你放弃你的第二行配置,因为 Git bash 已经定义了如何使用 kdiff3。 (你可以看看你安装的Git Bash,比如我的路径下,可以找到C:\Program Files (x86)\Git\libexec\git-core\mergetools\kdiff3,就是kdiff3的配置文件) .您唯一需要做的就是将 kdiff3 放入您的 PATH 变量中。
只使用你的第一行:
git config --global diff.tool kdiff3
但不是你的第二行:
#### comment out this line:
# git config --global difftool.kdiff3.cmd '"C:\\Program Files\\KDiff3\\kdiff3" $BASE $LOCAL $REMOTE -o $MERGED'
要修复你已经添加的配置,请尝试在你的 GIT BASH 下编辑你的 .gitconfig
vim ~/.gitconfig
找到 [difftool "kdiff3"]
部分,然后删除该部分下带有 cmd=
的行。您也可以删除整个部分(即也删除包含 [difftool "kdiff3"]
然后将您的路径添加到 kdiff3:
PATH=$PATH:"/c/Program Files/KDiff3"
由于“程序”和"file"之间的空格,需要双引号。
此 PATH 行可以添加到您的 .bashrc 或 .bash_profile,具体取决于您启动 bash 的方式...
---更新---
更正:由于 Git Bash 使用 Windows 系统定义的环境变量“PATH”+ Windows 用户定义的环境变量“PATH”。上述 PATH 更改更难(使用 .bashrc 等)。只需更改 Windows 环境变量,如 this link , 和/或 this link
关于混帐庆典 : Can't spawn kdiff3 as difftool,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27262781/
对于上下文,routes\index.js:87 在我的 exec 周围(同步)或在我的 exec 内部(异步)。 我在使用库 child_process、win-spawn 或 cross-spaw
我一直在尝试使用 Programming Erlang,版本 2(Joe Armstrong 的书)。我正在尝试解决第 13 章中的第一个问题。 作为解决问题的办法——我想到了这个—— -module
使用rust 0.12。 假设我有一个可发送的闭包,它的定义完全独立于应该在另一个任务中生成它的代码。 关闭类型: type closure_type = ||: 'static + Send; 代码
我相信我在某处读到使用 spawn/1 之间存在差异和 spawn/3谈到热重载,但我找不到有关该主题的任何完整信息。所以我想知道是否真的有区别,如果有,那是什么?一些例子会很棒。谢谢你。 最佳答案
我无法编译这个简单的程序 #include #include #include #include int main(){ printf("Spawning new process...\n")
NetworkObject.spawn()不起作用!我正在为游戏对象使用unity netcode,并尝试通过使用主机实例化它来产生一个游戏对象,然后在客户机上使用getComponent().spa
有没有办法确定所有生成的子进程何时关闭或退出? 例如,我如何确定没有更多进程可以运行,或者换句话说,我的 500 个子进程已全部退出? for (let index = 0; index {
我最近一直在开发一个按需构建服务器。构建服务器是一个 NodeJS/Express REST API,它本质上包装了 Angular CLI 和相关的构建工具,用于完成自定义的按需 Angular 应
我正在尝试使用外部包: npm install [python-shell][1] 现在,我只有基本的 js 文件和包附带的示例: console.log('hey in main.js') var
我正在尝试让 spawn 影响 rm -rf node_modules 后跟 npm install(在 Windows 7 上; nx 个命令由透明安装的 CygWin 提供。所有 nx 个命令都可
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我正在尝试使用 spawn() 创建子进程有自己的终端 父.js: const spawn = require('child_process').spawn; console.log('started
我正在尝试使用 spawn 运行此命令 var args = ['-ss','00:00:15','-i',storage_path + doc.file_name,'-vframes','1','-
我开始使用 Erlang,在应用从 spawn/3 返回的 PID 时,可以帮助理解不同的结果。到process_info/1方法。 给定这个简单的代码,其中 a/0函数被导出,它只是调用 b/0 ,
我正在尝试运行一个非常简单的 tcl 脚本 package require Expect spawn sftp user@host 我得到的错误是 The system cannot find the
我使用 npm 全局安装了 phantomJs。为什么此代码不起作用? var page = require('webpage').create(); var spawn = require('ch
当我决定自学编程时,我从 Java 开始。尽管我熟悉编写简单的程序化软件(主要是用 PHP),但我最近开始意识到,对于更复杂的操作,我依赖对象。 我的第一个 Java 游戏通过实例化对象以随机速度在随
Julia 的run 函数似乎难以运行source。奇怪的是,如果我在 shell 中运行完全相同的命令,它不会有问题。 有没有办法从 Julia 以编程方式运行命令? julia> cmd = "/
当我运行 grunt-open 时,我不断收到“警告:Spawn ENOENT”问题。 我的设置 我的所有项目文件都在 Google 云端硬盘上。我正在直接对文件进行开发(使用 Google 云端硬盘
当我使用 100 个传感器运行时,我收到了 Erlang 的响应,所有进程都返回某个版本的 进程 中出现错误,退出值:{undef,[{main,watcher_start,[10,0],[]}]}
我是一名优秀的程序员,十分优秀!