【发布时间】:2012-07-30 02:16:27
【问题描述】:
所以,我有一个与BitBucket 的 API 集成的 php 脚本,并对一些本地/共享存储库进行更改。
为此,我将--git-dir 和--work-tree [如果适用] 与每个命令一起使用,如下所示:
/usr/bin/git --git-dir=/var/www/staging.repo/.git --work-tree=/var/www/staging.repo merge "origin/master" 2>&1; echo $?
我在开发环境中使用 git 版本 1.7.0.4,在实时服务器上使用 git 版本 1.5.6.5。原因是 Debian Lenny (5) 没有更新版本的 git,所以我坚持使用旧版本。
问题是,在 git v1.7 上正确接受 --work-tree 和 --git-dir 的一些命令在旧版本上似乎不太关心它。一个例子是:
/usr/bin/git --git-dir=/var/www/staging.repo/.git --work-tree=/var/www/staging.repo merge "origin/master" 2>&1;回声$?
输出:
致命:/usr/bin/git-merge 不能在没有工作树的情况下使用。
那么,如何使用 git 1.5.6.5 广泛使用这些参数?
解决方案:
下载的git源码:
我自己:/some/folder$ curl -O http://git-core.googlecode.com/files/git-1.7.7.tar.gz
已安装:
我自己:/some/folder/git-1.7.7.tar.gz$ ./configure
我自己:/some/folder/git-1.7.7.tar.gz$ 制作
我自己:/some/folder/git-1.7.7.tar.gz$ sudo make install
完成! :)
参考:http://www.mikepilat.com/blog/2011/06/how-to-build-git-from-source-on-ubuntu/
【问题讨论】:
-
可能遗漏了一些东西,但有什么特殊原因你不能只编译一个较新版本的
git? 1.5.6 在互联网时代已有 50 万年的历史,编译它并不困难。