标签: msysgit

导致git gc --auto的所有命令的列表

是否存在导致git gc --auto运行的命令的确定列表?在GIT-GC(1)手册页简单地说:

- 汽车

使用此选项,git gc检查是否需要任何内务处理; 如果没有,它退出而不执行任何工作.执行可能会创建许多松散对象的操作后,会运行一些git命令git gc --auto.

(重点补充)

我正在组织从SVN到Git的大型迁移.绝大多数用户将使用Windows PC,其中不可忽视的部分是非技术性的.他们将使用TortoiseGit(因为它与他们已经熟悉的TortoiseSVN非常匹配) - 我注意到TortoiseGit不包含任何git gc手动运行的功能.

不能指望非技术人员必须git gc --auto从适当的工作目录发起"git bash"命令行; 当我们使用MsysGit的"便携式"发行版时,他们将不会拥有"Git GUI Here .."windows shell上下文菜单快捷方式.

是否有理由期待随着时间的推移Git将主要自我维护,或者我是否需要尝试使用非技术性的用户友好的调用方法git gc --auto

git msysgit git-gc

17
推荐指数
1
解决办法
1985
查看次数

.gitignore不了解Windows上的文件夹通配符

.gitignore在Windows上遇到了一个奇怪的问题.

我希望git忽略所有.exe文件,除了Dependencies文件夹(和所有子文件夹)中的文件.

所以我有:

.gitignore:

*.exe
!/Dependencies/**/*.exe
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不起作用.

同时,这样做:

*.exe
!/Dependencies/folder/subfolder/*.exe
Run Code Online (Sandbox Code Playgroud)

所以我想知道,我搞砸了什么,或者这是一种什么样的错误?

我在Windows(Windows 7 x64)版本1.6.5.1-preview20091022上运行msysgit

提前感谢任何输入:)

windows git msysgit gitignore

16
推荐指数
1
解决办法
1万
查看次数

Windows上的Git Diff和Meld

有没有人让Meld在Windows上与Git合作?我试图让它工作,我没有成功.

我安装了Meld,当我从命令行调用它时有两个文件作为参数,它们很好地区分它们以便正确安装Meld.但是我无法使用Git(Git Diff).我使用的git version 1.8.1.msysgit.1是Git 版本.

我尝试了几件事:我创建了一个shell脚本,meld.sh:

#!/bin/bash
meld.exe "$2" "$5"
echo $2
echo $5
Run Code Online (Sandbox Code Playgroud)

并从Git中使用它:

[diff]
    tool = meld

[difftool "meld"]
    cmd = \"D:\\meld.sh\"
Run Code Online (Sandbox Code Playgroud)

我试着把它添加为像这样的difftool:

[diff]
    tool = meld

[difftool "meld"]
    cmd = \"C:\\Program Files (x86)\\Meld\\meld\\meld.exe\" 
Run Code Online (Sandbox Code Playgroud)

或者像这样:

[diff]
    tool = meld

[difftool "meld"]
    cmd = '\"/c/Program Files (x86)/Meld/meld/meld.exe\" $PWD/$LOCAL $PWD/$BASE $PWD/$REMOTE --output=$PWD/$MERGED'
Run Code Online (Sandbox Code Playgroud)

但它似乎真的不起作用.我还试图从我的shell脚本中回显第二个($ 2)和第五个($ 5)参数,没有输出.我还尝试过以下几种方式使用批处理脚本:

meld.exe %2 %5
Run Code Online (Sandbox Code Playgroud)

要么

meld.exe %~2 %~5
Run Code Online (Sandbox Code Playgroud)

但它确实不起作用......如何在传播Git到Meld时传递文件的两个版本?这很烦人......

git git-diff meld msysgit difftool

16
推荐指数
3
解决办法
2万
查看次数

gitolite安装问题

有没有人尝试过gitolite的简易安装选项?
我正在尝试从我的窗户(工作站)安装gitolite到solaris盒子.

[command used to install] 
./gl-easy-install -q git sjcfsap1 git
Run Code Online (Sandbox Code Playgroud)

该命令在以下位置中断.

*Y*ou are logging into system : [gitserver]
cloning gitolite-admin repo...
Initialized empty Git repository in c:/Documents and Settings/chandve/gitolite-a
dmin/.git/
Password:
fatal: 'gitolite-admin' does not appear to be a git repository
fatal: The remote end hung up unexpectedly**
Run Code Online (Sandbox Code Playgroud)

有没有人遇到过这个问题?你觉得gitolite值得这个努力吗?我期待为Git评估ACL.

感谢您的回复.

[下面的完整命令执行日志]

CHANDVE@CHANDVE /c/git/repos/gitolite/src (master)
$ ./gl-easy-install git sjcfsap1 git


------------------------------------------------------------------------

you are upgrading     v1.5.3-13-g20c2e1a     to v1.5.3-13-g20c2e1a

Note: getting '(unknown)' for the 'from' version should only happen once.
Getting '(unknown)' …
Run Code Online (Sandbox Code Playgroud)

git msysgit gitolite

15
推荐指数
2
解决办法
1万
查看次数

msysgit:Unicode字体警告

最近我在使用msysgit时收到此错误,特别是当git输出生成一些非ASCII内容时:

警告:您的控制台字体可能不支持Unicode.如果您在输出中遇到奇怪的字符,请考虑切换到TrueType字体,例如Lucida Console!

有趣的是,尽管该消息告诉我我的字体不支持Unicode,但实际上它确实正确显示(正确编码并显示所有字符).

可悲的是,我找不到禁用此消息的方法.我尝试更改Git Bash中的字体(我通常使用PowerShell)但是当我在那里检查字体时,我注意到它实际上已经设置为Lucida Console,并且警告也出现在同一个控制台中.所以我有点无能为力解决这个问题,或者至少阻止msysgit一直打印这个警告.

我尝试重新安装msysgit,同时选择了应该将字体设置为Lucida Console的选项,但它没有帮助.我能做什么?

git console msysgit

15
推荐指数
1
解决办法
8039
查看次数

Git GUI每次打开存储库时都会崩溃

几天前,每次我在存储库中启动Git GUI时,它会显示这个可怕的错误消息,并在单击OK后退出:

prepare-commit-msg hook failed:

      0 [main] us 0 init_cheap: VirtualAlloc pointer is null, Win32 error 487
AllocationBase 0x0, BaseAddress 0x68560000, RegionSize 0x260000, State 0x10000
C:\Program Files (x86)\Git\bin\sh.exe: *** Couldn't reserve space for cygwin's heap, Win32 error 0

You must correct the above errors before committing.
Run Code Online (Sandbox Code Playgroud)

它只发生在Git GUI上,只有在存储库(旧的或新创建的)中才会发生.Git Bash中的常用命令包括提交工作正常.

使用较新的软件包卸载和重新安装(仅更改次要版本)并未解决此问题.它仍然发生在旧的存储库以及新创建的存储库中.

在干净的机器上这个问题不会重现,所以我想这是我的盒子上的东西,但我不记得安装任何有趣的东西.我记得在很长一段时间之后关掉我的盒子,所以也许有些Windows Update可能会触发这个 - 这也可以解释为什么其他机器不会受到影响 - 这是自上次Win更新后的2-3个月.

任何想法如何阐明这一点?(因为我只能在一台机器上看到它,在我知道它不是我/其他应用程序的错误之前我不想将它提交给官方跟踪器......)


第一条评论后更新:

  • 如果删除或重命名钩子脚本,它是否有效?

    有趣的是,但钩子脚本实际上根本不存在(没有钩子脚本存在 - .git\hooks中只有*.sample文件).甚至没有其他地方(git program dir等)

  • 跟踪它,以便您知道它运行的命令 - 来自git-bash run git gui --trace

    遗憾的是,这不会向shell输出任何内容.行为是一样的.

  • 也许在那里得到gdb.

    我试过,但gdb没有输出任何有用的东西.但是,我对GDB没有任何经验,我可能做错了.我得到了一个MinGW的gdb,从命令提示符下以git.exe作为参数运行它,然后运行run gui …

git dll msysgit

15
推荐指数
3
解决办法
8845
查看次数

git show <commit> --onon not not on online

我正在使用mysysgit的1.8.3版本,似乎--oneline命令不会给我每次提交一行,我也得到所有的diff行.

git show HEAD --oneline
Run Code Online (Sandbox Code Playgroud)

乃至 git show HEAD --pretty="%h %s"

不要只给一行.

(注意:同时使用git bash和posh git的结果)

我想要show --oneline的原因是我想把一个rev-list查询的结果从posh git中输入它.

git rev-list <somestuff> | %{git show $_ --oneline}
Run Code Online (Sandbox Code Playgroud)

git msysgit

15
推荐指数
2
解决办法
3269
查看次数

如何将Araxis设置为MSYS git的差异/合并工具?

我正在尝试使用Araxis Merge作为MSYSGit的差异/合并工具.

我在网上找到了一些资源:

  • Araxis网站上,他们提到了一种"简单"的方式,但它暗示了一个不属于我的发行版的可执行文件(araxisgitdiff.exe和araxisgitmerge.exe).
  • 我也在gitguru中找到了一些信息,但实际的信息是:Araxis充其量只是稀疏,我无法做出任何改变.
  • 最后,有一些旧的stackoverflow帖子的信息,但建议的方法不适合我.这个特定的信息面向OS X.我尽可能地"翻译"到Windows,但没有成功:

我建立 /bin/git-diff-driver.sh

#!/bin/sh

"/c/Program Files/Araxis/Araxis Merge/compare.exe" -title1:"$1 (repo version)" -title2:"$1 " -max "$2" "$5"
Run Code Online (Sandbox Code Playgroud)

并编辑 gitconfig

[merge]
    tool = araxismerge
[mergetool "araxismerge"]
    cmd = "/c/Program Files/Araxis/Araxis Merge/compare.exe" -3 -merge -wait $LOCAL $BASE $REMOTE $MERGED
[diff]
    external = "/bin/git-diff-driver.sh"
Run Code Online (Sandbox Code Playgroud)

我得到的唯一结果是:

$ git diff HEAD ^ HEAD
外部差异死亡,停在PowerEditor/src/Notepad_plus.cpp.


编辑:

我也尝试过使用"c:/Program Files/Araxis/Araxis Merge/compare.exe"其中一个答案所建议的exe ,并得到相同的结果.


编辑:

我发现如果你使用TortoiseGit它可以轻松设置,但它似乎自己处理diff并且没有来自TortoiseGit的设置给出任何关于如何在从命令行调用diff时将Araxis设置为合并工具的指示.


编辑:

所以,问题是:是否有人成功使用Araxis Merge来区分和合并MSYSGit,如果是这样,你怎么样?

windows git diff msysgit araxis

14
推荐指数
3
解决办法
2万
查看次数

使用MinGW的msysGit,反之亦然

我使用git作为我的修订控制系统.为此,我安装了msysGit来检查我在MSW上的存储库.现在我想用MinGW编译我的程序,并为我发现这个"问题":当我通过mingw-get安装MinGW和MSYS时,我可以编译我的程序,没问题.但我无法访问git.当我使用Git Bash时,我可以使用git,但无法编译.

有没有可能:

  • 安装MinGW"进入"Git Bash(因为它已经包含了msys,不是吗?)或者
  • 在两个安装之间设置"链接"以使其工作.

我会更喜欢我可以更容易地保持两个包更新的方式.

提前致谢 :)

git mingw compilation msys msysgit

14
推荐指数
2
解决办法
1万
查看次数

Git SVN如何忽略路径工作(忽略每日构建标记)?

我正在尝试使用git svn克隆一个svn存储库.存储库具有标记的每日构建,我想忽略它.我试图使用"ignore-paths"选项来做到这一点,但我仍然将每日构建标记作为我的存储库中的分支.

这里有一个非常近期和类似的(但迄今未解答的)问题: 如何git svn只获取具有某些模式的分支/标签?

存储库布局 - https://test.kuali.org/svn/rice

通用存储库结构

  • 分支机构
    • 分行1
  • 忽略目录1
  • 忽略目录1
  • 标签
    • 标签1
    • 标签2
      • 旧标签1
      • 旧标签2
    • 建立
      • 每日构建1
      • 每日构建2
  • 树干

我试过了什么

我在正则表达式上并不那么出色,而且它们可能是错的,但这是我尝试过的:

这只是我在git svn文档中找到的修改版本:

git svn clone -r15709:HEAD --prefix=svn/ --stdlayout --no-follow-parent --ignore-paths="^[^/]+/(?:tags/builds|tags/old|branches)" https://test.kuali.org/svn/rice
Run Code Online (Sandbox Code Playgroud)

这是我试图简化:

git svn clone -r15709:HEAD --prefix=svn/ --stdlayout --no-follow-parent --ignore-paths="(old|builds)" https://test.kuali.org/svn/rice rice-full
Run Code Online (Sandbox Code Playgroud)

绝望......(并添加一些我不需要的路径)

git svn clone -r15711:HEAD --prefix=svn/ --stdlayout --ignore-paths="^[^/]+/(?:builds|old)|inactive|rice-functional-tests|sandbox|tools" https://test.kuali.org/svn/rice
Run Code Online (Sandbox Code Playgroud)

然后我切换到更新版本,以便更快完成,并尝试忽略所有分支和标签进行测试.这个似乎没有得到任何分支和标签,但它也从未完成.它似乎冻结了(至少,它的运行时间超过了我认为应该只有一两天的历史):

git svn clone -r21846:HEAD --prefix=svn/ --stdlayout --ignore-paths="^tags*|^branches*" https://test.kuali.org/svn/rice
Run Code Online (Sandbox Code Playgroud)

我试过的最后一个是:

git svn clone -r15711:HEAD --prefix=svn/ --stdlayout --ignore-paths="^tags/old*|^tags/builds*|^inactive*|^rice-functional-tests*|^sandbox*|^tools*" https://test.kuali.org/svn/rice
Run Code Online (Sandbox Code Playgroud)

一般思考和问题

  1. 我不确定ignore-paths正则表达式到底匹配什么.它是svn存储库的相对路径(tags/builds/Daily build 1)吗?是评估项目中的每个文件(标记/构建/每日构建1 /文件1,标记/构建/每日构建1 /文件2)还是仅在分支/标记级别(标记/构建/每日构建1)?它是否包含存储库基本URL( …

git git-svn msysgit

14
推荐指数
1
解决办法
8167
查看次数

标签 统计

git ×10

msysgit ×10

windows ×2

araxis ×1

compilation ×1

console ×1

diff ×1

difftool ×1

dll ×1

git-diff ×1

git-gc ×1

git-svn ×1

gitignore ×1

gitolite ×1

meld ×1

mingw ×1

msys ×1