Git在命令上使用--work-tree和--git-dir

时间:2012-07-30 02:16:28

标签: php git bitbucket

所以,我有一个PHP脚本,它与BitBucket的API集成,并对一些本地/共享存储库进行更改。

要做到这一点,我会将--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; echo $?

输出:

  

致命:如果没有工作树,则无法使用/ 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.ta​​r.gz$ ./configure

     

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

     我自己:/some/folder/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 个答案:

答案 0 :(得分:0)

请编译最新的git。

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