git - 为什么即使我在 Ubuntu 12.10 上安装了 git 1.8.3.2, `git subtree` 也不起作用?

标签 git ubuntu git-subtree

我将使用 Yeoman 将基于 AngularJS 的静态站点部署为 Github 页面。部署说明的第 3 步告诉我要做什么

git subtree push --prefix dist origin gh-pages

但是当我输入时,我得到了

git: 'subtree' 不是 git 命令。请参阅“git --help”。

SO answer provided me instructions关于如何升级到最新的 git-core 并确保它始终升级到最新的稳定版本。

sudo add-apt-repository ppa:git-core/ppa
sudo apt-get update
sudo apt-get install git

在运行这些命令后,我执行了 git --version 以确保我拥有最新版本,显然我这样做是因为 git version 1.8.3.2 是输出。现在,当我尝试运行时

git subtree push --prefix dist origin gh-pages

再次出现同样的错误

git: 'subtree' 不是 git 命令。请参阅“git --help”。

最后,我刚刚重新启动了 Ubuntu 12.10 并尝试再次运行该命令,但我又一次遇到了同样的错误。

为什么我已经升级到当前的稳定版本,git subtree 命令仍然无法运行?

最佳答案

它实际上安装在 Ubuntu 上,但出于某种原因,它没有放在 git 可以找到它的任何地方。最简单的方法是创建符号链接(symbolic link):

sudo chmod +x /usr/share/doc/git/contrib/subtree/git-subtree.sh
sudo ln -s /usr/share/doc/git/contrib/subtree/git-subtree.sh /usr/lib/git-core/git-subtree

更新 1: 看起来像 patch has been submitted上游修复此问题,但尚未 merge 。

更新 2: 在 Debian 中修复此问题的补丁已被 merge ,但由于他们采用了单独的 git-subtree 包的路线,我不认为这是将进入 Ubuntu 12.04。在 14.04 中似乎不是问题,因为 /usr/lib/git-core/git-subtree 已经由 git 包正确创建。

关于git - 为什么即使我在 Ubuntu 12.10 上安装了 git 1.8.3.2, `git subtree` 也不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17797328/

相关文章:

git - 为什么 Git 子树总是处理每个提交?

git - 如何绘制(编辑)ascii git 树

git - 如何撤消上次提交

windows - gcc 可被 cmd 识别,但不能被 bash 识别

ubuntu - 在 phpinfo() 报告的位置找不到 php.ini

git - 跟踪通过 `git subtree` merge 的外部 git repos

git - 删除无效的 git-subtree-split 哈希

在 VS Code 的这个工作区中未启用 git

git - 什么是 github 'compare & pull request'

android - 如何在 Ubuntu 服务器上从 Shell 运行 Android 模拟器