使用Cygwin或msysGit版本的Git,或两者兼而有之?

时间:2011-12-03 22:48:54

标签: git cygwin msysgit

我正在运行Windows 7,我今天第一次安装了Cygwin,所以我一直在玩它。我现在也想开始使用Git。

根据我的阅读,msysGit将允许您使用GUI,它还可以右键单击文件夹/文件Add to Git GUIAdd to GIT Bash上下文菜单选项。

同时虽然我想使用命令行来做一些Git的东西,但我认为作为Git初学者,拥有上下文菜单和GUI会很不错。

所以我有点卡住了。几个问题......

  1. 如果我使用msysGit安装Git,我仍然可以使用Cygwin运行Git的命令行内容吗?

  2. 一本书说你可以安装Cygwin和msysGit它的版本,如果是这样的话,它们是否都在相同的文件/ repo上工作,或者就像在每个文件上有2个单独的Git回购?如果是这种情况,那么它似乎有点矫枉过正。

  3. 我还看到msysGit有一个便携版本。如果我要使用这个便携式版本,这是否意味着Git仓库存储在USB便携式设备上或仅存储在程序中?如果它是Git程序并且代码存储库是可移植的,那将会很酷。

6 个答案:

答案 0 :(得分:16)

1)如果你没有使用cygwin,而你想使用Git,请使用msysgit。它为Windows带来了良好的Git集成,几乎所有GUI工具--Git Extensions,TortoiseGit和我所知道的其他工具都依赖于msysgit。同样使用msysgit,你可以使用cmd,powershell等中的git。如果你只有cygwin git,这是不可能的。

msysgit附带了它自己的bash,你可以使用它作为命令行,你不需要cygwin(再次,从你没有使用cygwin的其他东西)。几乎所有的git功能都可以在msysgit中找到,除了一些Windows特定的更改(和性能)之外,你会发现一切都以与gix on * nix类似的方式工作。 cygwin不会像msysgit一样高效,而且在* nix上的本机git也就不那么容易了。

2)并且可以同时使用它们而且您不需要单独的回购。他们可以和平共处。

3)Git repos是轻量级的,因为它们只涉及文件系统。没有便携式git repos的概念,因为它们实际上是便携式的。 Msysgit portable允许您在不安装msysgit的情况下在系统上运行Git repos。

答案 1 :(得分:15)

你可以使用其中之一或两者 - 但有些事情需要注意。

在我最近的工作中,团队的大多数人都在使用msysGit;我使用了Cygwin git因为我是一个沉重的Cygwin用户。

这两个处理执行权限的方式不同。当您在MSYS环境中签出foo.cmdfoo.bat文件时,它会将其视为可执行文件,因为.cmd.bat后缀表示可执行格式。 Cygwin没有;它是一个类似Unix的环境,因此它不会假设文件基于其后缀是可执行的。所以*.cmd文件对其他人都很好,但不适合我。

解决方法是执行chmod +x并检入并推送更改,这使我的文件可执行,并且不会影响其他用户。

在执行pushpullfetch时,我也遇到了输入密码的问题。 git中的代码关闭回显在MSYS下工作,但不在Cygwin下。我通过使用无密码ssh来避免这种情况。

除此之外(也许还有一两个我目前不记得的问题),事情进展得相当顺利。

答案 2 :(得分:4)

Git for cygwin和msysGit安装完全独立的可执行文件。前者仅适用于cygwin;后者安装自己的bash shell(和GUI工具),但也可以使用cmd.exe或PowerShell。我个人更喜欢msysGit。

两者都可以对抗相同的Git存储库。

答案 3 :(得分:2)

如果通过一些不幸的命运扭曲,你正在处理一个git存储库,其历史中的一些提交说,几个演出的大小,那么你将用MSysGit耗尽内存,因为截至目前,只有一个32位版本可用(有一个64位版本在Pre-apha,但截至目前,它仍然无法进行一些测试,因此不适合生产)。只有在这种情况下,64位版本的Git才成为必需品。

更新:有一种方法可以在不使用Cygwin路线的情况下仍然使用64位Git:

  1. 安装Vagrant
  2. 安装VirtualBox
  3. 将此VagrantFile添加到空文件夹
  4. 根据您的需要调整
  5. 在命令提示符下cd到新文件夹和
    1. 发出命令“vagrant up”。完成后拿一杯咖啡。
    2. 接下来,发出命令“vagrant ssh”
  6. 您现在拥有一台安装了64位git的Linux虚拟机。接下来,在虚拟机中:

    1. cd / vagrant
    2. git clone
    3. 让它完成,你将有一个64位的Git安装在Windows上控制你的存储库。

答案 4 :(得分:1)

您可能会将该工具与git repos混淆git。 msysgit和cygwin git提供了工具,存储库可以独立存在git个二进制文件。

1 - 是的。 msysgit是使用MSYS的git的实现,并且具有比Cygwin git更高的性能。 msysgit也有命令行git.exe可执行文件。 msysgit不依赖于其他内容,您可以从常规cmd运行它。

Cygwin的git将依赖于Cygwin系统,并且与msysgit相比速度较慢。

但是,您可以同时安装,但如果您不使用cygwin,则不必为git安装它。我非常支持msysgit。

2 - git是git,你可以使用msysgit或cygwin的git用于相同的存储库,但要注意版本不匹配(例如,如果你使用的是msysgit 1.7.8和cygwin git 1.6)。我不认为这是一个大问题,但我从来没有安装过多个git版本。

编辑:

3 - msysgit便携式意味着您可以在闪存驱动器之类的东西上携带msysgit。

额外:

您可能想尝试TortoiseGit。它是git的GUI,并为您提供了在Windows资源管理器中执行git的上下文菜单。在安装TortoiseGit之前,您需要安装msysgit。

答案 5 :(得分:1)

一定不要安装cygwin的git。这是slow to death。我即将尝试使用msysgit,希望能有更好的表现。