web-dev-qa-db-ja.com

Gitクローンは、削除された追跡されていないファイルにつながります

私は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を使用していない) )。

12
pHneutre

私は非常に長いパスを持つ巨大なプロジェクトを取得していました。長いパスを使用するようにGitを設定するのを忘れました:

git config --global core.longpaths true

この後、クローン作成は正常に行われ、ステータスはクリーンになりました。

14
pHneutre

どういうわけか空のインデックスをロードしたようです。これがコマンドgit read-tree --emptyで発生する通常の方法ですが、これはgitの新しいユーザーとして通常使用/知っているものではありません。

おそらく、クローンに問題が発生しました。修正するのは難しいことではありませんが、実行するだけです

git reset

インデックスは最新のコミットの内容に復元する必要があります。

5
Per Johansson

この問題は、「gitを初めて使用する」OPだけでなく混乱を招きます。それはまた、かなりのgit verteranである、私からのsh * tを怖がらせます。 :-)

ここでの他の回答からのヒントのおかげで、現在のファイルシステムやOSでサポートされていない文字が名前に含まれている一部のファイルをgitがチェックアウトできないことが原因であることがわかりました。たとえば、github wikiリポジトリのクローンを作成しているときに同じエラーが発生しました。一部のウィキページでは、ファイル名に:が含まれていますが、Linuxボックスでは正常にクローンできますが(後から考えると) )明らかに私のWindowsボックスにはありません。

根本原因を理解することで、この問題を修正する方法/修正するかどうかについて自信を持って判断できます。

  • 問題のあるファイル名の名前を短くしたり、通常のアルファベットのみを含めたりすることで、リポジトリで修正できます。
  • または、技術的には、修正する必要はまったくありません。これらの問題のあるファイル名がターゲットプラットフォームで問題なく、このリポジトリの他のコンテンツに取り組んでいる場合は、通常どおり作業を続行できます。欠落しているファイルを削除としてコミットしないことを覚えておく必要があります。 (そこに行って、それをしました。家でこれを試さないでください。)
4
RayLuo

ここで終了し、longpathプロパティが機能せず、Windowsで実行してGit Bashを使用する場合、Windowsで予約済みキーワードを使用するファイルがある可能性があります。つまり、nulが含まれているファイルがあり、それらはクローン作成後に削除されました。私はそれがこの予約されたキーワードのものであることを見つけるのに半日を費やしました。

その解決策は、単にファイルの名前を変更することです(ファイルを作成できる他のマシン/ OS上で)。それをプッシュしてから、Windowsマシンでクローン操作をやり直します。

2
Stefan Hendriks

Windowsで問題が発生した場合は、ファイル名を次の禁止文字と照合してください。

<(未満)
>(より大きい)
(コロン)
"(二重引用符)
/(スラッシュ)
\(バックスラッシュ)
|(垂直バーまたはパイプ)
? (疑問符)
*(アスタリスク)

または、以下の予約語の1つ、またはその直後に拡張子が続く名前のファイル:CON、PRN、AUX、NUL、COM1、COM2、COM3、COM4、COM5、COM6、COM7 、COM8、COM9、LPT1、LPT2、LPT3、LPT4、LPT5、LPT6、LPT7、LPT8、およびLPT9。

詳細については、 ここ をご覧ください。

1

ファイル名に表示されない文字にすることもできます。他のシステムで確認してください;)

0
pkopac

私の場合、Macで大文字と小文字を区別しないファイルシステムにリポジトリのクローンを作成しましたが、リポジトリにはConfigという名前のファイルとconfigという名前のディレクトリが含まれていました。これらのファイルシステムは同じものと見なされていました。 。そのため、クローンを作成すると、ファイルConfigが削除されたことが表示されました。

修正は、大文字と小文字を区別するファイルシステムにリポジトリのクローンを作成することでした。

0
SerkanC

私はウィンドウズ10で同様の問題に直面しました、私はgitがうまく機能している他のウィンドウもチェックしました、私のgitバージョンは2.24.xxでした。 git2.16.xの古いバージョンのgitをインストールしましたが、問題は解決しました。それを試して、知らせてください

0
Manish Sharma