Git 包含一组由第三方提供的工具.我不确定我应该如何正确使用这些工具.
例如,我想使用git-subtree.似乎有很多方法可以使用它:
复制到我的路径
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.
符号链接到我的路径
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)
也工作,感觉稍微不那么黑客
使用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.
使用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中,运行:
Run Code Online (Sandbox Code Playgroud)make make install make install-doc
如果您使用configure来执行主构建,那么git-subtree构建将获取这些设置.如果没有,您可能必须提供前缀值:
Run Code Online (Sandbox Code Playgroud)make prefix=<some dir> make prefix=<some dir> install make prefix=<some dir> install-doc
要运行测试,首先将git-subtree复制到主构建区域,以便新构建的git可以找到它:
Run Code Online (Sandbox Code Playgroud)cp git-subtree ../..
然后:
Run Code Online (Sandbox Code Playgroud)make test
我刚刚确认这是有效的:
安装构建代表
$ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev
Run Code Online (Sandbox Code Playgroud)查看最新发布的分支和构建
$ git co v1.7.11.3
$ make prefix=/usr/local all
$ sudo make prefix=/usr/local install
Run Code Online (Sandbox Code Playgroud)构建并安装contrib/subtree
$ cd contrib/subtree
$ make
$ make install
$ make install-doc
Run Code Online (Sandbox Code Playgroud)验证一切正常
/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)
检查,我们有子树工作.
这是对我有用的最简单的事情,在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)
就是这样.
Contribus 是有用的东西的集合。您不将它们作为包安装。例如,要安装制表符完成功能,您只需从 .bash_profile 脚本中获取该脚本即可。该文件夹中的每个贡献都有其自己的使用方式。
至于从源代码编译git
make
sudo make install
Run Code Online (Sandbox Code Playgroud)
安装所有先决条件后。