41

根据http://cygwin.com/packages/git/最新可用的 Cygwin 包是 1.7.9-1。

我想将 git 更新到至少 1.8.0。

我可以这样做吗?

4

8 回答 8

46

cygwinports有很多新版本的各种工具

在我写这篇文章的时候它有 1.8.3.4

新的、简化的安装说明:

  • 使用最新的 Cygwin 安装程序(至少版本 2.829):setup-x86.exe 用于 32 位,或 setup-x86_64.exe 用于 64 位。(请注意,许多软件包尚未移植到 x86_64。)
  • 使用 -K 标志启动 setup-*.exe,例如:

    cygstart -- /path/to/setup-x86.exe -K http://cygwinports.org/ports.gpg

  • 在选择安装类型页面上,选择“从 Internet 安装”。

  • 在选择下载站点页面上,选择发行版镜像,然后在用户 URL 字段中输入ftp://ftp.cygwinports.org/pub/cygwinports并按添加(确保两者都突出显示)。
    1. 或者,您可以使用源软件镜像,但如果这样做,您必须使用托管在与您选择的发行版镜像不同的服务器上的镜像。
  • 继续选择和安装包,确保安装任何指定的依赖项。
于 2013-11-19T20:43:18.177 回答
29

要安装git 1.8.0,您需要编译源代码。

您需要克隆 git 存储库 ( git clone https://github.com/git/git.git),进入 git 目录,将当前版本更改为 1.8.0 或您想要的其他版本 ( git checkout v.1.8.0),然后键入以下命令:

make configure
./configure --prefix=/usr/local
make
make install

它将在/usr/local目录下安装 git。有关 git 安装的更多信息(如文档),您可以查看INSTALL本地化在 git 存储库根目录中的文件。

于 2013-01-15T06:07:41.527 回答
7

我按照这些说明成功安装了 git 1.8.4.474 ;我正在运行 Windows 7 64 位,cygwin 版本 1.7.22(0.268/5/3)

  1. 运行 Cygwin 设置实用程序并确保您已安装以下软件包:

    gcc
    autoconf
    curl
    libcurl-devel, required for http/https support 
                   (NOTE: this is an obsolete package, you will need to
                   uncheck "Hide obsolete packages" when selecting packages
                   to install)
    make
    libiconv
    python
    perl
    gettext
    

    您可能需要 libiconv-devel 和 cygwin32-liviconv(参见 Marek 的评论)

  2. 使用 git clone https://github.com/git/git.git克隆 Git 源。关于 Git 配置的几点说明:

    确保core.autocrlf=false,否则您最终会得到 DOS 样式的行尾,这会导致构建中断。

    http.sslcainfo我的财产价值也很糟糕;要么取消设置,要么将其指向/usr/ssl/certs/ca-bundle.crt.

  3. 从新克隆的 git 存储库中,运行以下命令:

    make configure
    ./configure
    make
    make install
    
于 2013-10-13T08:08:50.397 回答
3

你的指示对我真的不起作用......

我遵循了这些说明(只要确保安装了所有正确的软件包)

http://randomartifacts.blogspot.com/2013/04/compiling-git-on-cygwin.html

修改了 Makefile

$ git diff Makefile
diff --git a/Makefile b/Makefile
index 3588ca1..90f337c 100644
--- a/Makefile
+++ b/Makefile
@@ -407,7 +407,7 @@ RPMBUILD = rpmbuild
 TCL_PATH = tclsh
 TCLTK_PATH = wish
 XGETTEXT = xgettext
-MSGFMT = msgfmt
+MSGFMT = msgfmt.py
 PTHREAD_LIBS = -lpthread
 PTHREAD_CFLAGS =
 GCOV = gcov

然后

make configure NO_MSGFMT_EXTENDED_OPTIONS=1
./configure
make NO_MSGFMT_EXTENDED_OPTIONS=1
make install NO_MSGFMT_EXTENDED_OPTIONS=1

不确定是否所有 make 命令都需要参数,但这对我有用

于 2013-09-04T01:33:31.790 回答
2

执行“make install”时出现问题。错误信息是:

install -d -m 755 '/usr/local/bin'
git: 'installation' 不是 git 命令。请参阅“git --help”。
./install:第 4 行:通常:找不到命令
./install:第 5 行:将:找不到命令
./install:第 6 行:to:找不到命令
./install:第 8 行:$:找不到命令
./安装:第 11 行:意外标记附近的语法错误(或前缀=/usr/local,当然)。就像任何程序套件一样' .'
./install: line 11:

这是由于 Windows 操作系统不区分大小写,如果您的 PATH 中有“./”。Cygwin 使用 git 源代码树中的 INSTALL 文件而不是 /usr/bin/install。我们必须将源树中的一些“安装”文件重命名为其他文件名。这是http://zengrong.net/post/1817.htm提到的

于 2013-10-31T07:01:45.593 回答
1

我在执行此操作时遇到了一个问题,我花了一个小时进行调试,所以我发布了一个答案,以防其他人来这里寻找。

实际上它与 Yorkwar 的原因相同,但错误不同。

一切顺利,直到make install输出:

$ make install
    GEN perl/PM.stamp
    SUBDIR gitweb
    SUBDIR ../
make[2]: 'GIT-VERSION-FILE' is up to date.
    GEN git-instaweb
    BUILTIN all
    SUBDIR git-gui
    SUBDIR gitk-git
    SUBDIR perl
    SUBDIR templates
install -d -m 755 '/usr/local/bin'
make: execvp: install: Permission denied
Makefile:2342: recipe for target 'install' failed
make: *** [install] Error 127

在对 UAC、setuid、icacls、所有权等进行了大量处理之后,我发现strace实际的问题是在执行时install:因为我有./PATH并且 Windows 不区分大小写,所以它尝试执行INSTALL,这是一个文本文件没有x设置位。所以“权限被拒绝”是指x没有在这个文件上设置的事实。

@Yorkwar 通过重命名所有INSTALL文件来解决这个问题,但是另一个选择是编辑Makefile和替换

INSTALL = install

INSTALL = /usr/bin/install

我在 Windows 7 64 位中使用 cygwin 32 位(在 cygwin64 出现之前安装它并且没有费心升级)。成功构建和安装git version 2.0.0.rc4.dirty,这是git clone https://github.com/git/git.git.

于 2014-05-21T23:56:22.383 回答
0

预构建的包不可用,因此您必须自己构建它。

或者,您可以下载非 Cygwin 构建并将其添加到您的PATH.

于 2013-01-15T02:48:26.980 回答
-1

您可以从git-scm.com/download/win安装适用于 Windows 平台的最新版本。

将以下内容添加到您的~/.profile:

export PATH=$PATH:`cygpath 'C:\Program Files (x86)\Git\bin'`

我使用 SourceTreecygwin中的这个 git 客户端并与 Gerrit/SSH 服务器结合使用,还没有遇到任何问题。

于 2014-01-27T16:32:38.490 回答