質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Q&A

解決済

1回答

4001閲覧

Linuxで開発しているGitのリポジトリをWindowsにcloneできない

kojix2

総合スコア49

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

0グッド

1クリップ

投稿2022/09/03 05:54

編集2022/09/03 05:57

概要

普段Linuxで開発しているGitのリポジトリをWindowsにcloneできない。

実現したいこと

Windowsで Git clone できない問題の理由を知りたい。

発生している問題・エラーメッセージ

Windowsで下記のリポジトリをクローンします。

git clone https://github.com/kojix2/ruby-htslib

すると、次のようなメッセージが出て、クローンできません。(Linux上では正常に終了します)

Cloning into 'ruby-htslib'... remote: Enumerating objects: 16140, done. remote: Counting objects: 100% (338/338), done. remote: Compressing objects: 100% (118/118), done. remote: Total 16140 (delta 276), reused 265 (delta 220), pack-reused 15802 Receiving objects: 100% (16140/16140), 1.95 MiB | 15.03 MiB/s, done. Resolving deltas: 100% (13267/13267), done. error: invalid path 'lib/hts/bam/aux.rb' fatal: unable to checkout working tree warning: Clone succeeded, but checkout failed. You can inspect what was checked out with 'git status' and retry with 'git restore --source=HEAD :/'

該当のソースコード

git clone https://github.com/kojix2/ruby-htslib

試したこと

こちらのサイト Windows版Gitのerror: invalid pathを解決する を参考にして、

git config --global core.protectNTFS false

とするとクローンできることがわかりました。どうやら、NTFSで問題を起こすファイルが含まれているらしく、lib/hts/bam/aux.rb がそうらしいです。

実際に、Windows10のマシンでは、該当のファイルを削除しようとしてもできないというトラブルが発生しましたので、追試される際にはご注意ください(Windows11では大丈夫でした)このように、Windowsのファイルシステムに不具合を起こすファイルが混入してしまったようですが、aux.rb は単なるテキストファイルです。何が悪いのか見当がつかないという状況です。

Windowsのトラブルに詳しい方いらっしゃいましたら、よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

git clone が失敗する原因

① Windows では、「aux」という名前は、MS-DOSから用いられていた特別なデバイス名に該当します。
結果、Windows 上で「aux」という名前のファイル、およびファイル名のうち、拡張子を除く部分が「aux」 となっているファイルは、いったん作成してしまうと通常のパス名ではアクセスできなくなります。
(実は、ファイル名がauxのファイルの作成は簡単にできます。たとえばコマンドプロンプトで touch aux.txt とすれば、特に管理者権限なしで作成できます。ただし通常の方法では削除できなくなります(後述))

② git clone により aux.rb を作成または更新しようとしたタイミングで、①が原因でアクセス不可等により何らかの必要な処理に失敗するため、質問中のエラーが発生しているものと考えられます。

③ また、①により、Windows 上では「aux.rb」に対するエクスプローラでの削除操作や、コマンドプロンプト等での通常のパス名での削除処理ができなくなります。
(「prn」や「con」などの文字列も「aux」と同様Windows上では特別な意味を持っており、これらをファイル名に使用した場合も同じトラブルが発生します)

削除する方法

aux.rb を削除したい場合は、コマンドプロンプトに下記のように入力してENTERを押してみて下さい。

del \\.\ファイルが存在するディレクトリのフルパス\ファイル名

たとえば
C:\USERS\TESTUSER\Documents

aux.rb というファイルが作られていて、これを削除したいという場合は

del \\.\C:\USERS\TESTUSER\Documents\aux.rb

となります。


HTSLIB の Windows 対応状況等については質問者さんの方でも調査済み の内容と思われますので、ここでは触れません。

投稿2022/09/03 06:16

編集2022/09/03 07:23
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kojix2

2022/09/03 07:27 編集

予想外の回答で驚きました。 まさかWindowsでauxという名前のファイルを作成すると問題が発生するとは思いにもよりませんでした。 ファイル名が原因という発想がなかったのでググっても回答にたどり着けなかったと思います。 ありがとうございました。 htslibのwindows対応状況に関しては、先ほど動かしてみて、だいたい動作することが確認できました。 細かいところまでよく見つけて頂きありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問