私はGitを初めて使用します。
Windows(10)用のGit(2.9.3)をインストールした後、git-bashを開いてgit clone <remoteURL>
を実行しました。リモートリポジトリのコピー全体を使用して新しいフォルダが作成されます。これは問題ありません。しかし、次にgit status
を実行すると、大量のdeleted
ファイル(コピーされたばかりのすべてのファイルと思われます)の準備ができてto be committed
になり、リポジトリフォルダーの下に3つのメインフォルダーがあります。 untracked
です。 deleted
ファイルは実際には私のドライブに存在します!
代わりに、gitステータスがクリーンになるはずです。何が起こっている?
This 削除されたファイルについては役に立たなかった(私はcheckout
を使用しなかった)、どちらも役に立たなかった this 追跡されていないファイルについて(私はMac OSを使用していない) )。
私は非常に長いパスを持つ巨大なプロジェクトを取得していました。長いパスを使用するようにGitを設定するのを忘れました:
git config --global core.longpaths true
この後、クローン作成は正常に行われ、ステータスはクリーンになりました。
どういうわけか空のインデックスをロードしたようです。これがコマンドgit read-tree --empty
で発生する通常の方法ですが、これはgitの新しいユーザーとして通常使用/知っているものではありません。
おそらく、クローンに問題が発生しました。修正するのは難しいことではありませんが、実行するだけです
git reset
インデックスは最新のコミットの内容に復元する必要があります。
この問題は、「gitを初めて使用する」OPだけでなく混乱を招きます。それはまた、かなりのgit verteranである、私からのsh * tを怖がらせます。 :-)
ここでの他の回答からのヒントのおかげで、現在のファイルシステムやOSでサポートされていない文字が名前に含まれている一部のファイルをgitがチェックアウトできないことが原因であることがわかりました。たとえば、github wikiリポジトリのクローンを作成しているときに同じエラーが発生しました。一部のウィキページでは、ファイル名に:
が含まれていますが、Linuxボックスでは正常にクローンできますが(後から考えると) )明らかに私のWindowsボックスにはありません。
根本原因を理解することで、この問題を修正する方法/修正するかどうかについて自信を持って判断できます。
ここで終了し、longpathプロパティが機能せず、Windowsで実行してGit Bashを使用する場合、Windowsで予約済みキーワードを使用するファイルがある可能性があります。つまり、nul
が含まれているファイルがあり、それらはクローン作成後に削除されました。私はそれがこの予約されたキーワードのものであることを見つけるのに半日を費やしました。
その解決策は、単にファイルの名前を変更することです(ファイルを作成できる他のマシン/ OS上で)。それをプッシュしてから、Windowsマシンでクローン操作をやり直します。
Windowsで問題が発生した場合は、ファイル名を次の禁止文字と照合してください。
<(未満)
>(より大きい)
:(コロン)
"(二重引用符)
/(スラッシュ)
\(バックスラッシュ)
|(垂直バーまたはパイプ)
? (疑問符)
*(アスタリスク)
または、以下の予約語の1つ、またはその直後に拡張子が続く名前のファイル:CON、PRN、AUX、NUL、COM1、COM2、COM3、COM4、COM5、COM6、COM7 、COM8、COM9、LPT1、LPT2、LPT3、LPT4、LPT5、LPT6、LPT7、LPT8、およびLPT9。
詳細については、 ここ をご覧ください。
ファイル名に表示されない文字にすることもできます。他のシステムで確認してください;)
私の場合、Macで大文字と小文字を区別しないファイルシステムにリポジトリのクローンを作成しましたが、リポジトリにはConfig
という名前のファイルとconfig
という名前のディレクトリが含まれていました。これらのファイルシステムは同じものと見なされていました。 。そのため、クローンを作成すると、ファイルConfig
が削除されたことが表示されました。
修正は、大文字と小文字を区別するファイルシステムにリポジトリのクローンを作成することでした。
私はウィンドウズ10で同様の問題に直面しました、私はgitがうまく機能している他のウィンドウもチェックしました、私のgitバージョンは2.24.xxでした。 git2.16.xの古いバージョンのgitをインストールしましたが、問題は解決しました。それを試して、知らせてください