web-dev-qa-db-ja.com

Git pullエラー:ファイルを作成できません(無効な引数)

リモートリポジトリをローカルリポジトリと同期しようとしていますが、次のエラーが発生します。一部のファイル(拡張子はありません)はWINDOWSマシン上のローカルリポジトリと同期していませんが、MACマシンでは正常に同期できました。

そのような場合を処理するためのWindowsの構成設定はありますか?

  1. TortoiseGitを使用する
  2. Windows 7 64ビットマシン

エラーの詳細

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)
30
Amol Dadas

そのログをよく読んだ場合、それらのファイルの名前は「?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があるように見えます。本当に必要ですか?多分それは削除できるいくつかのアーティファクトですか?プロジェクトの管理者と話してみてください。たぶん彼らはその奇妙な接尾辞を簡単に削除できるでしょうか?

21
quetzalcoatl

同じ問題にぶつかりましたが、これらのファイルの名前を変更したり削除したりしませんでした。スパースチェックアウトを使用してこれらのファイルにアクセスせずに生きることができる場合の回避策は次のとおりです。

リポジトリの.gitフォルダーに移動して、ファイルconfigを開きます。 (tortoise-gitを使用して設定を編集することもできますが、ここにインストールされていません。)[core]sectionセクションに次の行を追加します。

sparsecheckout = true

次に、フォルダー.git/infoに移動して、ファイルsparse-checkoutを作成します。次のようなものを追加します

*
!kickstarter/parsers/data/kickstarter/campaigndetails/*

最初の行にはすべてが含まれ、2番目の行にはkickstarter/parsers/data/kickstarter/campaigndetails/内のすべてのファイルが含まれません。これで、レポをチェックアウトできるはずです。ワイルドカードを使用すると、おそらくより高度な除外を実行できます。

35
morty

私はbitbucketを使用していますが、問題のファイルを削除できる機能があります。

これが私がすることです。

  1. リポジトリに移動します。
  2. メニュー「コミット」を選択します。
  3. 問題のあるファイルを削除するブランチを選択します。
  4. ファイルに移動してクリックします。ファイルの詳細を示すファイル概要に到達します。コード、コミットされたこのファイルの日時など.
  5. 右上隅を見ると、下向き矢印の付いたボタン(アルファベットvに似ています)が表示されます。
  6. ドロップダウンが表示され、名前の変更ボタンと削除ボタンが表示されます。
  7. それはあなたの選択であり、名前を変更するか削除します。賢明に選択してください。
  8. ボタンをクリックした後。 Bitbucketはダイアログボックスを表示し、コミットボタンでファイルをコミットします。
  9. コミット後、ソースツリーに戻り、問題なくコードをプルできます。
  10. 楽しい!
2