【问题标题】:Git use of --work-tree and --git-dir on commandsGit 在命令中使用 --work-tree 和 --git-dir
【发布时间】: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.ta​​r.gz$ ./configure

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

我自己:/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/

【问题讨论】:

  • 可能遗漏了一些东西,但有什么特殊原因你不能只编译一个较新版本的git? 1.5.6 在互联网时代已有 50 万年的历史,编译它并不困难。

标签: php git bitbucket


【解决方案1】:

请编译最新的 git。

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

【讨论】:

    猜你喜欢
    • 2015-06-26
    • 1970-01-01
    • 2021-12-25
    • 2014-09-30
    • 1970-01-01
    • 2013-02-11
    • 2012-04-02
    • 2023-04-11
    • 1970-01-01
    相关资源
    最近更新 更多