63

github からリポジトリをチェックアウトしようとすると、次のエラーが表示されます。

error: invalid path 'configs/perl-modules/DIST.64/perl-HTML-Tree-1:5.03-1.el6.noarch.rpm'

問題は、パスに : が含まれていることだと思いますが、これは Windows では違法です。

エラーを調査した結果、考えられる答えが 2 つ見つかりました
。1) リポジトリ ファイルのパスを変更します。 残念ながら、これはチームのリソースであり、近い将来に修正することはできません.
2) スパース チェックアウトを使用します。 以下で証明されているように、私はこれを試しましたが、効果はありませんでした。

$ git clone -n​​ git@github.com:XXXXXX/deploy.git
Cloning into 'deploy'...
remote: Enumerating objects: 57, done.
リモート: オブジェクトのカウント: 100% (57/57)、完了。
remote: オブジェクトの圧縮: 100% (49/49)、完了。
リモート: 合計 86457 (デルタ 10)、再利用された 22 (デルタ 8)、パック再利用された 86400
オブジェクトの受信: 100% (86457/86457)、1.50 GiB | 4.73 MiB/秒、完了。
差分の解決: 100% (59779/59779)、完了。
$ cd deploy/
$ git config core.sparsecheckout true
$ echo www >> .git/info/sparse-checkout
$ git checkout centos6
エラー: 無効なパス 'configs/perl-modules/DIST.64/perl-HTML-Tree-1 :5.03-1.el6.noarch.rpm'
エラー: 無効なパス 'configs/perlbrew/perls/perl-5.24.1/man/man3/App::Cpan.3'
.
. (多くのファイルに対して繰り返します)
.

これは Git for Windows "git version 2.28.0.windows.1" で行われました。また、両方のタイプの行末を試し、次のような .git/info/sparse-checkout のさまざまなバージョンを使用しました。

/*
!/configs/perl-modules
!/configs/perlbrew/perls/perl-5.24.1/man/man3

Checkout は Linux、MacOS、および WSL で正常に動作します。唯一の問題は、私の IDE がそこで動作しないことです。Windows で sparse-checkout が機能しないのはなぜですか。他の可能性はありますか?

4

16 に答える 16

1

他の解決策がどれも機能しない場合、問題は git のバージョンにある可能性があります。バージョンを使用2.31.1し、エラーが表示されましたが、それから で試してみたところ、問題なく動作し2.15ました。しかし、私にとってエラーはgit cloneコマンドにありました。

于 2021-04-15T03:29:29.187 に答える
1

Linux と Windows、Mac Os と Windows など、異なる OS で動作している場合。ファイルパスの文字を確認してください。私の場合、アイテムを Mac に保存してコミットしましたが、Windows マシンをプルすると、ファイル パス エラーが発生しました。

Windows は次のように述べています。

ファイル名には次の文字を含めることはできません: \ / : * ? " < > |

しかし、私の保存した画像名には「*」が含まれていました。したがって、チームが使用しているさまざまな OS で有効な新しい名前をコミットするだけです。または、回避策を探して、さらにイライラする

単純な権利。

于 2021-09-07T13:46:02.277 に答える