Git插件不工作

Git插件不工作,git,plugins,Git,Plugins,我的路径中有git tf,但git似乎没有看到它。我的理解是git应该在您的路径中找到名为git xxxx的插件/扩展,并让您使用git xxxx执行它们 这是在运行El Capitan(10.11.12)的Mac电脑上 有人要求我打印我的$PATH: $ echo $PATH | tr ":" "\n" ~/bin ~/Development/git-tf /usr/local/bin /usr/bin /bin /usr/sbin /sbin $ 一位同事在约塞米蒂岛上,没有发现问题。我

我的路径中有git tf,但git似乎没有看到它。我的理解是git应该在您的路径中找到名为
git xxxx
的插件/扩展,并让您使用
git xxxx
执行它们

这是在运行El Capitan(10.11.12)的Mac电脑上

有人要求我打印我的$PATH:

$ echo $PATH | tr ":" "\n"
~/bin
~/Development/git-tf
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
$ 
一位同事在约塞米蒂岛上,没有发现问题。我让他运行相同的命令,他的输出如下。注意来自哪个git tf的
的输出:

$ type git-tf
git-tf is hashed (/usr/local/git-tfs/git-tf)
$ which git-tf
/usr/local/git-tfs/git-tf
$ git-tf --version
git-tf version 2.0.3.20131219
$ which git
/usr/local/git/bin/git
$ git --version
git version 1.8.4.2
$ git tf
usage: git-tf [--version] [--help] [--quiet|-q|--verbose] [<command...>]

The git-tf commands are:
  help       Displays usage information
  clone      Initializes a git repository from a TFS path
  configure  Configures an existing git repository to add to TFS
  checkin    Checks in changes to a TFS folder
  fetch      Fetch the latest code from TFS into FETCH_HEAD
  pull       Pulls the latest code from TFS and merge/rebase the changes into master
  shelve     Shelves the changes to a TFS folder
  shelvesets Lists the shelvesets available on the server. Provides a way to delete shelvesets
  unshelve   Unshelves a shelveset from TFS into the repository
$
$type git tf
git-tf是散列的(/usr/local/git-tfs/git-tf)
美元多少吉特
/usr/local/git tfs/git tf
$git tf--版本
git tf版本2.0.3.20131219
美元多少吉特
/usr/local/git/bin/git
$git—版本
git版本1.8.4.2
$git tf
用法:git-tf[--version][--help][--quiet |-q |--verbose][]
git-tf命令包括:
帮助显示使用信息
克隆从TFS路径初始化git存储库
configure配置要添加到TFS的现有git存储库
签入将更改签入到TFS文件夹
将TFS中的最新代码提取到fetch\ U HEAD中
pull从TFS中提取最新的代码,并将更改合并/重定基址到master中
搁置对TFS文件夹所做的更改
搁置集列出服务器上可用的搁置集。提供了一种删除搁置集的方法
取消搁置将搁置集从TFS取消搁置到存储库中
$

如果相关路径组件使用类似于
~
的shell速记,Git无法解析路径中的命令。你需要改变

~/Development/git-tf
改为其中一个:

/Users/chris/Development/git-tf

$HOME/Development/git-tf

(使用bash在El Capitan上测试。)

如果相关路径组件使用类似于
~
的shell速记,Git无法解析路径中的命令。你需要改变

~/Development/git-tf
改为其中一个:

/Users/chris/Development/git-tf

$HOME/Development/git-tf

(使用bash在El Capitan上测试。)

请参阅上面Dan Lowe的回答,关于使用包含自定义git命令的目录的完整路径,而不是将其缩写为“~”


(保留以下内容不变,因为它有一些细节,如greadlink)

我能够用zsh在OSX 10.8上重现这个问题(并找到解决方法)

创建自定义命令 先决条件,使其可执行并将其添加到路径 不,不行

解决方法(将自定义命令复制到git安装文件夹)
请参见上面Dan Lowe的回答,关于使用包含自定义git命令的目录的完整路径,而不是将其缩写为“~”


(保留以下内容不变,因为它有一些细节,如greadlink)

我能够用zsh在OSX 10.8上重现这个问题(并找到解决方法)

创建自定义命令 先决条件,使其可执行并将其添加到路径 不,不行

解决方法(将自定义命令复制到git安装文件夹)
这个输出令人困惑。为什么
which
不打印路径,而是在下一行运行
git tf
并获得输出?@DanLowe也许当前目录有git tf的可执行文件,即当前目录必须是
/Users/hidden from StackOverflow/git tf
?这是上述输出的唯一方法sense@DanLowe,我觉得这也很奇怪,我想这可能与此有关。运行这些命令时,我不在git tf目录中。我想知道这是否与El Capitan有关。约塞米蒂的一位同事在做
时看到git tf,而他的
git tf
正在工作。克里斯,你能把
echo$PATH | tr的输出发出去吗?“\n”
?@AshutoshJindal,完成了。我还删除了“隐藏堆栈溢出”位。我有点过于谨慎了。这个输出令人困惑。为什么
which
不打印路径,而是在下一行运行
git tf
并获得输出?@DanLowe也许当前目录有git tf的可执行文件,即当前目录必须是
/Users/hidden from StackOverflow/git tf
?这是上述输出的唯一方法sense@DanLowe,我觉得这也很奇怪,我想这可能与此有关。运行这些命令时,我不在git tf目录中。我想知道这是否与El Capitan有关。约塞米蒂的一位同事在做
时看到git tf,而他的
git tf
正在工作。克里斯,你能把
echo$PATH | tr的输出发出去吗?“\n”
?@AshutoshJindal,完成了。我还删除了“隐藏堆栈溢出”位。我有点过于谨慎了。
$ chmod +x ~/Development/git-tf/git-tf
$ export PATH="$PATH:~/Development/git-tf"
# Confirm that it is indeed in the PATH
$ echo $PATH | tr ":" "\n" | grep tf

$ git tf
git: 'tf' is not a git command. See 'git --help'.
Did you mean this?
    tag
# Find out the location of the git installation
$ brew install coreutils  # to get GNU readlink which support '-f'
$ dirname $(dirname $(greadlink -f $(which git)))
$ cd $(!!)/libexec/git-core

$ cp ~/Development/git-tf/git-tf .
$ git tf
  Hello, Imma git command!