リモートリポジトリをローカルリポジトリと同期しようとしていますが、次のエラーが発生します。一部のファイル(拡張子はありません)はWINDOWSマシン上のローカルリポジトリと同期していませんが、MACマシンでは正常に同期できました。
そのような場合を処理するためのWindowsの構成設定はありますか?
エラーの詳細
git.exe clone --progress -v "https://github.com/xxxx/xxxxx.git" "C:\Data\GitHub\simility\vishesh-common"
Cloning into 'C:\Data\GitHub\simility\vishesh-common'...
POST git-upload-pack (200 bytes)
remote: Counting objects: 3912, done.
remote: Compressing objects: 100% (487/487), done.
Receiving objects: 100% (3912/3912), 2.70 MiB | 567.00 KiB/s, done.
Resolving deltas: 100% (1578/1578), done.
remote: Total 3912 (delta 409), reused 0 (delta 0)
Checking connectivity... error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030050305_fantasy-trilogy-spin?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030295038_laser-dogs?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030315317_arizona-native-bird-painting-series?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030315317_native-birds-ii?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030552097_ikeyboard-0?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030552097_ikeyboard?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030552097_only-you-can-prevent-computercide?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030552097_vector-cupholder-protect-your-laptop-and-your-lap?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_103055429_death-of-an-angel?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030650665_rachel-vanslyke-making-a-new-record-together-we-ca?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030835091_russian-trucks-of-world-war-two?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1031873800_prop-expansion-next-level?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1031873800_prop-project-expansion?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1099860912_yaw-clock?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1099992656_heavenly-sight-a-vision-out-of-blindness?ref=users (Invalid argument)
fatal: unable to checkout working tree
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status' and retry the checkout with 'git checkout -f HEAD'
git did not exit cleanly (exit code 128) (21746 ms @ 29-09-2014 13:32:13)
そのログをよく読んだ場合、それらのファイルの名前は「?ref = users」で終わります
Windowsでは、「?」を使用できません。 「\」または「*」を使用できないように、ファイル名に。 Linuxでは、これらの文字をエスケープすると可能です。 Windowsでは、それはまったく不可能だと思います。 http://msdn.Microsoft.com/en-us/library/windows/desktop/aa365247 を参照してください
あなたはそのような名前に苦労するでしょう..私は実際にあなたがその1:1を同期することを可能にするアイデアを思い付くことができません。確かにそれらを取得して_projects_1099992656_heavenly-sight-a-vision-out-of-blindness__ref=users
のような安全な名前で保存することはできますが、それを自動的に行う方法や、後でそのマッピングについてGitに通知する方法がわかりません。
これらのファイル名には、接尾辞が付いたHTML-query-parametersがあるように見えます。本当に必要ですか?多分それは削除できるいくつかのアーティファクトですか?プロジェクトの管理者と話してみてください。たぶん彼らはその奇妙な接尾辞を簡単に削除できるでしょうか?
同じ問題にぶつかりましたが、これらのファイルの名前を変更したり削除したりしませんでした。スパースチェックアウトを使用してこれらのファイルにアクセスせずに生きることができる場合の回避策は次のとおりです。
リポジトリの.git
フォルダーに移動して、ファイルconfig
を開きます。 (tortoise-gitを使用して設定を編集することもできますが、ここにインストールされていません。)[core]
sectionセクションに次の行を追加します。
sparsecheckout = true
次に、フォルダー.git/info
に移動して、ファイルsparse-checkout
を作成します。次のようなものを追加します
*
!kickstarter/parsers/data/kickstarter/campaigndetails/*
最初の行にはすべてが含まれ、2番目の行にはkickstarter/parsers/data/kickstarter/campaigndetails/
内のすべてのファイルが含まれません。これで、レポをチェックアウトできるはずです。ワイルドカードを使用すると、おそらくより高度な除外を実行できます。
私はbitbucketを使用していますが、問題のファイルを削除できる機能があります。
これが私がすることです。