git 错误: Unable to find remote helper for ‘https‘

这个问题之前在 《编译OpenWrt过程》 博文里提到过。当前没有彻底地解决,只是简单地将所有的URL中的 http, https 改成了 git。

今天知道问题的原因了,是因为 /usr/libexec/git-core/ 路径没在 PATH 环境变量中。

我们查看一下:

$ ls /usr/libexec/git-core/
git                    git-http-backend         git-receive-pack
git-add                git-http-fetch           git-reflog
git-add--interactive   git-http-push            git-relink
git-am                 git-imap-send            git-remote
git-annotate           git-index-pack           git-remote-ftp
git-apply              git-init                 git-remote-ftps
git-archive            git-init-db              git-remote-http
git-bisect             git-instaweb             git-remote-https
git-bisect--helper     git-log                  git-repack
git-blame              git-lost-found           git-replace
git-branch             git-ls-files             git-repo-config
git-bundle             git-ls-remote            git-request-pull
git-cat-file           git-ls-tree              git-rerere
git-check-attr         git-mailinfo             git-reset
git-checkout           git-mailsplit            git-revert
git-checkout-index     git-merge                git-rev-list
git-check-ref-format   git-merge-base           git-rev-parse
git-cherry             git-merge-file           git-rm
git-cherry-pick        git-merge-index          git-send-pack
git-clean              git-merge-octopus        git-shell
git-clone              git-merge-one-file       git-shortlog
git-commit             git-merge-ours           git-show
git-commit-tree        git-merge-recursive      git-show-branch
git-config             git-merge-resolve        git-show-index
git-count-objects      git-merge-subtree        git-show-ref
git-describe           git-mergetool            git-sh-setup
git-diff               git-mergetool--lib       git-stage
git-diff-files         git-merge-tree           git-stash
git-diff-index         git-mktag                git-status
git-difftool           git-mktree               git-stripspace
git-difftool--helper   git-mv                   git-submodule
git-diff-tree          git-name-rev             git-symbolic-ref
git-fast-export        git-notes                git-tag
git-fast-import        git-pack-objects         git-tar-tree
git-fetch              git-pack-redundant       git-unpack-file
git-fetch-pack         git-pack-refs            git-unpack-objects
git-filter-branch      git-parse-remote         git-update-index
git-fmt-merge-msg      git-patch-id             git-update-ref
git-for-each-ref       git-peek-remote          git-update-server-info
git-format-patch       git-prune                git-upload-archive
git-fsck               git-prune-packed         git-upload-pack
git-fsck-objects       git-pull                 git-var
git-gc                 git-push                 git-verify-pack
git-get-tar-commit-id  git-quiltimport          git-verify-tag
git-grep               git-read-tree            git-web--browse
git-hash-object        git-rebase               git-whatchanged
git-help               git-rebase--interactive  git-write-tree

这导致里面的 git-remote-https, git-remote-http 这些得不到执行。所以 git 所表现出来的功能不全。

解决办法是:将 /usr/libexec/git-core 纳入 PATH,至少在使用 git 之前,设置一下PATH。

$ PATH=$PATH:/usr/libexec/git-core

或直接在 /etc/profile 中修改。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。