标签: msysgit

Git&WinMerge(msysgit)

我已经阅读了关于这个主题的大量问答,并遵循了该信的所有指示.但是我仍然头疼,试图将Git设置为使用WinMerge进行差异和合并.

我使用Git终端采取了以下步骤:

git config --global diff.tool winmerge
git config --global difftool.winmerge.cmd "winmerge.sh \"$LOCAL\" \"$REMOTE\""
git config --global difftool.prompt false
Run Code Online (Sandbox Code Playgroud)

我还在我的PATH变量中包含的目录中设置了一个脚本:

#!/bin/sh
echo Launching WinMergeU.exe: $1 $2
"C:/Program Files/WinMerge/WinMergeU.exe" git /e /u /dl "Base" /dr "Mine" "$1" "$2""
Run Code Online (Sandbox Code Playgroud)

当我执行

git mergetool
Run Code Online (Sandbox Code Playgroud)

在Git终端中,我看到:

Merging:
first.txt

Normal merge conflict for 'first.txt':
  {local}: modified
  {remote}: modified
Launching WinMergeU.exe:
Run Code Online (Sandbox Code Playgroud)

因此在我看来,$LOCAL$REMOTE变量并没有将任何内容传递给winmerge.sh脚本.我在这做错了什么?我必须在配置部分中假设它.

git winmerge msysgit mergetool

6
推荐指数
1
解决办法
6061
查看次数

Vim没有突出显示bash脚本的语法(msysgit版本)

我正在使用msysgit附带的bash和vim.我已将.vimrc文件添加到我的主文件夹中,并且大多数命令都在执行.但syntax on事实并非如此.

这是我的~/.vimrc文件的内容:

set cul
hi CursorLine cterm=none ctermbg=darkgray ctermfg=white
syntax on
Run Code Online (Sandbox Code Playgroud)

当前的行和突出显示现在正在运行,但是syntax on失败了.Msysgit安装它自己的vim,在C:\Program Files (x86)\Git\share\vim\vim73\syntax文件夹中,它不包含bash.vim或sh.vim文件.其他文件在那里,如conf.vim,gitcommit.vim和gitrebase.vim - 甚至是c.vim.

我猜这就是没有突出显示的原因.鉴于我无法触摸该文件夹(不要问),如何更改我的.vimrc文件以加载bash.vim文件 - 什么是获取一个文件的好地方?

任何帮助表示赞赏.

vim bash msysgit vim-syntax-highlighting

6
推荐指数
1
解决办法
6247
查看次数

设置Git/SmartGit SSH客户端的主文件夹

我想知道是否有人能够了解当我通过SSH连接到我们的源代码管理服务器时,SmartGit不表现的原因.GitBash表现很好.

背景:

我在网络上设置了一个源控制服务器,运行带有WinSSH的MSYSGit作为SSH服务器.它挂钩到AD来解析用户名等,我已经导入了所有公共RSA密钥等.一切都很好用.

对我们来说,一个曲线球是,虽然Git安装在' C:\ Program Files(x86)\ Git ',但我们的实际源代码位于' C:\ Git ',它会定期备份.

我已经配置WinSSH使所有SSH会话默认为' C:\ Git '作为他们的主文件夹,这是一种享受.当我使用Git Bash连接到服务器时,它默认为' C:\ Git '.完善.

当我使用SmartGit(使用SmartGit SSH客户端)连接到同一服务器时,使用url:

    ssh://<server>/<folder>/<repo>
Run Code Online (Sandbox Code Playgroud)

我得到一个错误说道路......

    C:\Program Files (x86)\Git\<folder>\<repo> 
Run Code Online (Sandbox Code Playgroud)

......似乎不是一个存储库.好吧,是的......它应该在' C:\ Git '中找到它,而不是' C:\ Program Files(x86)\ Git '.

我不确定为什么SmartGit不适合这个设置,但我认为它的SSH客户端绕过了默认的WinSSH设置,因为它完全从' C:\ Program Files(x86)\ Git指定整个路径".

我的问题:

SmartGit可能从哪个想法获得' C:\ Program Files(x86)\ Git '路径?

这是我可以设置的变量吗?

更多信息(更新)

SmartGit的版本是3.0.4,但问题也出现在2.x中.

我已经附上了(我很确定)是SmartGit应用程序日志中失败的实例:

1782732(2012-05-10 12:18:56,653)[QThreadPoolThread-2(smartgit.KL)] INFO smartgit.core.executable - 执行以下命令:"C:\ Program Files\Git\bin\git.exe"ls -remote ssh://initio-dev01/INIT/INIT.Framework.git refs/heads /

1782732(2012-05-10 12:18:56,653)[QThreadPoolThread-2(smartgit.KL)] INFO smartgit.core.executable - 在目录中:null

1783049(2012-05-10 12:18:56,970)[QThreadPoolThread-8(smartgit.aqT)] INFO smartgit.server - 收到的命令:ssh

1786438(2012-05-10 12:19:00,359)[QThreadPoolThread-6(smartgit.cR)] INFO …

git ssh msysgit smartgit

6
推荐指数
1
解决办法
3195
查看次数

.gitignore 否定不起作用

我正在使用 msysgit 1.9.4。

我的 .gitignore 文件位于 repo 的根目录,如下所示:

build/
a/b/
!a/c/d/e/**/build/
Run Code Online (Sandbox Code Playgroud)

我的意图是,所有 build/ 目录都将被忽略,除非它们是 a/c/d/e/ 的子目录(任何深度)。但是 a/c/d/e/f/build/ 仍然被 Git 忽略。

我在这里缺少什么?

git msysgit gitignore

6
推荐指数
1
解决办法
2604
查看次数

处理Cygwin Git和Git for Windows中的EOL字符访问同一个存储库

我的意思autocrlf是对的.在我的cygwin-shell中git status给出了我所有更改的正确列表.

在Git Bash中git status说我修改了项目中的所有文件.我也在Git GUI和IntelliJ中的Changes-tab中看到了这一点.

这怎么可能,更重要的是,我该如何解决?

git cygwin line-endings msysgit core.autocrlf

6
推荐指数
1
解决办法
2811
查看次数

Windows 上使用 print() 和管道输出时出现“OSError: [Errno 22] Invalid argument”

当将 Python 脚本的输出传递到带有无效参数的管道时,我遇到了一些(对我来说)奇怪的行为wc

\n\n
\xce\xbb python test.py\nHello!\n\xce\xbb python test.py | wc -li\nwc: unknown option -- i\nTry 'wc --help' for more information.\nException ignored in: <_io.TextIOWrapper name='<stdout>' mode='w' encoding='cp1252'>\nOSError: [Errno 22] Invalid argument\n
Run Code Online (Sandbox Code Playgroud)\n\n

这里发生了什么?

\n\n

我的配置是

\n\n
    \n
  • Windows 10
  • \n
  • 指挥者
  • \n
  • msysgit 2.5.1.windows.1
  • \n
\n

python windows msysgit wc

6
推荐指数
1
解决办法
3939
查看次数

将git与重写SSL证书的代理一起使用

在$ WORK,我们必须使用一个内省的Web代理来重写SSL证书链.我可以通过使用curl获取https URL或运行(确定,尝试运行:-))firefox插件更新程序来验证这一点.

GIT的Windows端口http://code.google.com/p/msysgit/也抱怨证书损坏.有没有办法强制它忽略证书问题?

问候,哈坎

git ssl digital-signature msysgit

5
推荐指数
1
解决办法
3038
查看次数

我如何使用git diff -G?

我正在编写一个小测试套件来运行要在一堆输入文件上进行测试的工具.对于每个输入文件,该工具正在创建相应的输出文件(两者都是XML格式).输入和输出文件在Git仓库中签入.

输出文件带有编译工具的时间,因此输出文件在被测试工具重新创建后肯定会被修改.

如果输出已经改变(当我修改工具的源代码时)快速一瞥,我想检查节点的内容是否OutputFingerprint已经改变(对输出文件的相关部分的内容进行简单的哈希) .

阅读手册git-diff,我发现有一个-G选项:

-G <regex>
查找添加或删除的行与给定<regex>匹配的差异.

不幸的是,它们没有提供如何使用该-G选项的示例.

我的第一个想法是简单地写

git diff -GOutputFingerprint
Run Code Online (Sandbox Code Playgroud)

但那是错的:

> git diff -GOutputFingerprint
error: invalid option: -GOutputFingerprint
Run Code Online (Sandbox Code Playgroud)

接下来的想法是将正则表达式放入斜杠,这也是不成功的:

> git diff -G/OutputFingerprint/
error: invalid option: -GC:/Program Files/Git/OutputFingerprint/
Run Code Online (Sandbox Code Playgroud)

此外,只是在两者之间放置一个空格-G并且OutputFingerprint不起作用:

> git diff -G OutputFingerprint
fatal: ambiguous argument 'OutputFingerprint': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions
Run Code Online (Sandbox Code Playgroud)

当我打电话git diff没有任何参数时,我得到修改:

-    <OutputFingerprint>e45807ca76fc5bb78e9e928c6fb7eed6</OutputFingerprint>
+    <OutputFingerprint>d0846851bc9d52b37f7919def78660a2</OutputFingerprint>
Run Code Online (Sandbox Code Playgroud)

另一种想法是使用git …

git git-diff msysgit

5
推荐指数
1
解决办法
1965
查看次数

GIT .mailmap按每个仓库运行,但不是全局,为什么?

我有一组repos,我有一个.mailmap文件来组合用户名.

我的.mailmap文件适用于所有repos,当它位于每个repos的根目录中时.

我试图将文件放在我的〜/ .gitconfig文件中,但它不起作用.我使用Git for Windows和我的全局.gitconfig文件,我添加了这个:

>> git config --global mailmap.file "~/.mailmap"
Run Code Online (Sandbox Code Playgroud)

那是我用过的命令.还尝试了下面显示的日志.

[log]
    mailmap = ~/.mailmap
[mailmap]
    file = C:/Documents and Settings/<username>/.mailmap
Run Code Online (Sandbox Code Playgroud)

两者都导致相同的文件位置,但在使用git-shortlog时似乎不尊重此文件

有什么建议?谢谢.

编辑 从来没有git这在Windows上工作.我的修复方法是将mailmap文件保存在数据库中,并使用脚本将其写入每个存储库.

git msysgit

5
推荐指数
1
解决办法
1116
查看次数

Git和PowerShell以及德国变形金刚

我一直在努力学习msysgit如何处理德语变音符号(äöü),例如提交评论.没运气 .....

所以我想我可能会尝试使用PowerShell及其git集成(PoshGit).但又一次 - 没有运气:

D:\temp\test [ +12 ~0 -0 !]> git add --all

D:\temp\test [ +12 ~0 -0]> git commit -m "Einige Dateien hinzugefügt"
  Warning: commit message does not conform to UTF-8.
  You may want to amend it after fixing the message, or set the config
  variable i18n.commitencoding to the encoding your project uses.
  [master (root-commit) 085b7d6] Einige Dateien hinzugef?gt
     12 files changed, 3320 insertions(+), 0 deletions(-)
Run Code Online (Sandbox Code Playgroud)

("EinigeDateienhinzugefügt"=添加了一些文件)

有趣 - 我可以发誓德国变形金刚是UTF-8标准的一部分......嗯......

果然:

D:\temp\test [master]> git …
Run Code Online (Sandbox Code Playgroud)

git powershell utf-8 msysgit

5
推荐指数
1
解决办法
3939
查看次数