Magitがssh接続を介してgit repoを認識しない


10

リモートサーバーへの接続にsshを使用しています。サーバー上にと呼ばれるgitリポジトリがありますMRFLSSVM。しかし、私が実行するmagit-statusと:

/ssh:qmServer:/home/Chang/qmCodeLab/MRFLSSVM/

マジットは私に尋ねますCreate repository in /ssh:qmServer:/home/Chang/qmCodeLab/MRFLSSVM/?

magitにそのリポジトリを認識させる方法はありますか?(git 2.10.0を/ usr / local / gitにインストールし、システム(CentOS)をupdate-alternativesで使用するように構成しました)

-----------編集------------------------------

Error (magit): Magit requires Git >= 1.9.4, you are using 1.8.3.

If this comes as a surprise to you, because you do actually have
a newer version installed, then that probably means that the
older version happens to appear earlier on the `$PATH'.  If you
always start Emacs from a shell, then that can be fixed in the
shell's init file.  If you start Emacs by clicking on an icon,
or using some sort of application launcher, then you probably
have to adjust the environment as seen by graphical interface.
For X11 something like ~/.xinitrc should work.

If you use Tramp to work inside remote Git repositories, then you
have to make sure a suitable Git is used on the remote machines
too.

Error (magit): Magit requires Git >= 1.9.4, but on /ssh:qmServer: the version is 1.8.3.

If multiple Git versions are installed on the host then the
problem might be that TRAMP uses the wrong executable.

First check the value of `magit-git-executable'.  Its value is
used when running git locally as well as when running it on a
remote host.  The default value is "git", except on Windows
where an absolute path is used for performance reasons.

If the value already is just "git" but TRAMP never-the-less
doesn't use the correct executable, then consult the info node
`(tramp)Remote programs'.

この問題はtramp、リモートサーバーで正しいgitを使用していないようです。私は変更しようとしたmagit-git-executableusr/local/git/bin/gitの両方の私のインストール、ローカルとリモートのgitのパスです。しかし、これはまだ機能しません。

これを解決するためのアイデアはありますか?ありがとう!


1
私のために働く。リモートサーバーのgitのバージョンが古すぎると思います。Magit 2には1.9.4以上のgitバージョンが必要です。
phils 2016

Magit over trampは、ローカルインスタンスよりも大幅に遅くなる可能性があることに注意してください。これらの場合、私はターミナルでリモートサーバーにsshし、そのサーバーで(ターミナルで)Emacsを実行することを好みます。その場合、すべてのgit操作はローカルで高速です。
phils 2016

さて、あなたの主な問題は、リモートサーバーに最近十分なバージョンのgitがインストールされていないことです。Emacsを実行している場所に関係なく、Magit 2ではgit 1.9.4以降を実行するサーバーが必要です。Magit 1はまだ利用可能で、はるかに古いバージョンのgitで動作するため、代わりにそれを使用してみることができます。(ただし、Magit 1がトランプで機能するかどうかは思い出せません。)
phils

@philsサーバーのgitを2.8.1に更新しましたが、それでも機能しません。どうすれば問題を見つけることができますか?私はspacemacsユーザーです。これはspacemacsと関係がありますか?
16

それは私には本当にありそうにないようですが、私にはわかりません。あなたはテストして見つけなければならないでしょう、私は推測します。それが機能しなかったと聞いてすみません。私は(問題だったというかなり自信があった、それは元々 1.9.4よりも古いバージョンを実行しています?)。まだ変更していない場合は、テストを行う前にEmacsを再起動してください。
phils 2016

回答:


6

エラー(magit):MagitにはGit> = 1.9.4が必要です。使用しているのは1.8.3です。

/ usr / local / gitにgit 2.10.0をすでにインストールしました

リモートホストで実行可能ファイルを検索するディレクトリのリストは、オプションによって制御されますtramp-remote-path。それは「リモートが私に何を使用すべきかを教えてくれた」要素で始まりますが、私の経験ではそれはあまりうまくいきません。特に$PATH、シェルの構成ファイルで行った変更は無視されると思います。

それで、あなたのinitファイルで、/usr/local/git/bin/usr/binに入れてくださいtramp-remote-path

(require 'tramp)
(push "/wherever/git/is/" tramp-remote-path)

0

gitのバージョンに問題がない場合は、このgitリポジトリの設定に問題がある可能性があります(例:の構文エラー).git/config

これを確認するには、リポジトリマシンとディレクトリでシェルを開き、次のように入力します。 git status

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.