2012-07-30 190 views
2

因此,我有一个php脚本,它与BitBucket的API集成并对某些本地/共享存储库进行更改。Git使用--work-tree和--git-dir命令

要做到这一点,我用--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。

问题是,在git v1.7上正确接受--work-tree--git-dir的一些命令在旧版本上似乎不太在意。一个例子是:

在/ usr/bin中/混帐--git-DIR = /无功/网络/ staging.repo/git的 - 共同努力树= /无功/网络/ staging.repo合并“的由来/ master“2> & 1; echo $?

输出:

致命的:在/ usr /斌/ git的合并不能没有工作树中。

那么,我怎样才能广泛使用这些参数使用git 1.5.6.5?


解决方案:

下载的git源:

自己:/一些/文件夹$卷曲-O http://git-core.googlecode.com/files/git-1.7.7.tar.gz

安装:

自己: /一些/文件夹/ GIT-1.7.7.ta​​r.gz $的./configure

自己:/some/folder/git-1.7.7.ta​​r.gz$使

自己:/部分/文件夹/ git- 1.7.7.ta​​r.gz $ sudo make install

完成! :)

编号:http://www.mikepilat.com/blog/2011/06/how-to-build-git-from-source-on-ubuntu/

+1

可能会遗漏一些东西,但是你不能只编译一个更新版本的'git'? 1.5.6在互联网时代已有五十万年的历史,编译并不困难。 – Christopher 2012-07-30 02:45:31

回答

0

请编译最新饭桶。

是的,有些命令不会观察这些参数。您可以尝试设置其等效的环境变量。