如何在git的contrib目录中正确安装这些工具?

Sim*_*ker 23 git

Git 包含一组由第三方提供的工具.我不确定我应该如何正确使用这些工具.

例如,我想使用git-subtree.似乎有很多方法可以使用它:

  1. 复制到我的路径

    cp /path/to/git-subtree.sh /usr/local/bin/git-subtree
    chmod +x /usr/local/bin/git-subtree
    
    Run Code Online (Sandbox Code Playgroud)

    工作正常,感觉有点hacky.

  2. 符号链接到我的路径

    chmod +x /path/to/git-subtree.sh
    ln -s /path/to/git-subtree.sh /usr/local/bin/git-subtree
    
    Run Code Online (Sandbox Code Playgroud)

    也工作,感觉稍微不那么黑客

  3. 使用git别名

    将以下内容添加到我的全局.gitconfig文件中:

    [alias]
        subtree = !/path/to/git-subtree.sh
    
    Run Code Online (Sandbox Code Playgroud)

    然后又好老chmod:

    chmod +x /path/to/git-subtree.sh
    
    Run Code Online (Sandbox Code Playgroud)

    工作,感觉很好,git-ish.

  4. 使用Makefile

    按照INSTALL文件.

    cd /path/to/git-subtree.sh
    make
    make install
    make install-doc
    
    Run Code Online (Sandbox Code Playgroud)

    对我不起作用,它会尝试安装到不存在的路径.也许这是因为我使用自制软件安装git 而不是从源代码安装?我懒得去调查; 我已经有三种工作方式.:)

所以我的问题是,哪些是安装git-contrib附加组件的首选方式?甚至还有一种首选方式吗?有没有其他选择我没有建议比上面列出的更好?

小智 10

来自git/contrib/git-subtree:

如何安装git-subtree
==========================

首先,从顶级源目录构建.

然后,在contrib/subtree中,运行:

 make
 make install
 make install-doc
Run Code Online (Sandbox Code Playgroud)

如果您使用configure来执行主构建,那么git-subtree构建将获取这些设置.如果没有,您可能必须提供前缀值:

 make prefix=<some dir>
 make prefix=<some dir> install
 make prefix=<some dir> install-doc
Run Code Online (Sandbox Code Playgroud)

要运行测试,首先将git-subtree复制到主构建区域,以便新构建的git可以找到它:

 cp git-subtree ../..
Run Code Online (Sandbox Code Playgroud)

然后:

 make test
Run Code Online (Sandbox Code Playgroud)

我刚刚确认这是有效的:

  1. 通过现有的git下载源代码
  2. 安装构建代表

    $ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev
    
    Run Code Online (Sandbox Code Playgroud)
  3. 查看最新发布的分支和构建

    $ git co v1.7.11.3  
    $ make prefix=/usr/local all  
    $ sudo make prefix=/usr/local install  
    
    Run Code Online (Sandbox Code Playgroud)
  4. 构建并安装contrib/subtree

    $ cd contrib/subtree  
    $ make  
    $ make install  
    $ make install-doc   
    
    Run Code Online (Sandbox Code Playgroud)
  5. 验证一切正常

    /usr/local/bin/git  
    [todd@montreal-01 subtree ((v1.7.11.3))]$ git --version  
    git version 1.7.11.3  
    
    Run Code Online (Sandbox Code Playgroud)

检查,我们有最新的git.

[todd@montreal-01 subtree ((v1.7.11.3))]$ git subtree  
usage: git subtree add   --prefix=<prefix> <commit>  
    or: git subtree merge --prefix=<prefix> <commit>  
    or: git subtree pull  --prefix=<prefix> <repository> <refspec...>  
    or: git subtree push  --prefix=<prefix> <repository> <refspec...>  
    or: git subtree split --prefix=<prefix> <commit...>

    -h, --help            show the help  
    -q                    quiet  
    -d                    show debug messages  
    -P, --prefix ...      the name of the subdir to split out  
    -m, --message ...     use the given message as the commit message for the merge commit  

options for 'split'  
    --annotate ...        add a prefix to commit message of new commits  
    -b, --branch ...      create a new branch from the split subtree  
    --ignore-joins        ignore prior --rejoin commits  
    --onto ...            try connecting new tree to an existing one  
    --rejoin              merge the new branch back into HEAD  

options for 'add', 'merge', 'pull' and 'push'  
    --squash              merge subtree changes as a single commit  
Run Code Online (Sandbox Code Playgroud)

检查,我们有子树工作.

  • 有用!谢谢.这是关键:`make prefix =/usr/local all ..我以前做了一个vanilla make install安装git并且子树安装失败了.一个小小的遗漏:在为子树做`make install-doc`时,我错过了一个额外的依赖`asciidoc`. (2认同)

its*_*dok 8

这是对我有用的最简单的事情,在Ubuntu 12.10上安装git-subtree:

获取代码

git clone https://github.com/git/git.git --depth=1
cd git/contrib/subtree
make
Run Code Online (Sandbox Code Playgroud)

将其"安装"到git工具目录中

sudo cp git-subtree /usr/lib/git-core/
Run Code Online (Sandbox Code Playgroud)

对于手册页,你需要asciidoc这不是一个小的安装,但如果你有它:

make doc
gzip git-subtree.1
sudo cp git-subtree.1.gz /usr/share/man/man1
Run Code Online (Sandbox Code Playgroud)

就是这样.


Ada*_*ruk 4

Contribus 是有用的东西的集合。您不将它们作为包安装。例如,要安装制表符完成功能,您只需从 .bash_profile 脚本中获取该脚本即可。该文件夹中的每个贡献都有其自己的使用方式。

至于从源代码编译git

make
sudo make install
Run Code Online (Sandbox Code Playgroud)

安装所有先决条件后。