私の(ローカル)gitリポジトリが壊れました。問題は私のpythonスクリプトが './'で始まる名前のファイルを追加したことに起因します。 「.git」が含ま: Gitエラー:オブジェクトxxxx:hasDot: '。'が含まれています。
Counting objects: 6, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (6/6), 4.03 KiB | 0 bytes/s, done.
Total 6 (delta 1), reused 0 (delta 0)
remote: error: object a6cc7dfb40e8c513415315d6ed84143448bd4f99: hasDot: contains '.'
remote: fatal: Error in object
error: unpack failed: unpack-objects abnormal exit
To [email protected]:xxx/yyy.git
! [remote rejected] master -> master (unpacker error)
error: failed to push some refs to '[email protected]:xxx/yyy.git'
近い私の問題への唯一のものをグーグルで著者はhasDotgitを持って、この未回答SO questionです
:私はGitのプッシュにしようとすると、私はこれを取得します
:エラーは私がgitのショーa6cc7dfb40e8c513415315d6ed84143448bd4f99を走りました --full
そしてのgit fsckは:
warning in tree a6cc7dfb40e8c513415315d6ed84143448bd4f99: hasDot: contains '.'
は私がは、正規FILE1削除「./file1" gitのが、のgitのrmに./filesを削除することがあると思いますファイルではなく、./file1です。私は再度コマンドを実行した場合、私はこれを取得:
fatal: pathspec './file1' did not match any files
私はこの問題について、インターネット上で絶対に何も見つけないとさえa search in the git source codeはどんな結果が表示されないので、私は何をするか分かりません。 そして、私はむしろpythonモジュールを使っているよりもむしろこれを普通のgitで修正したいと思います。(ファイルを削除しようとすると、が致命的です:pathspecエラー)。
EDIT1:のgit LS-ツリー--long --abbrev --full-名a6cc7dfb40e8c513415315d6ed84143448bd4f99
040000 tree 22b75ee - .
100644 blob d519532 3580 file1
...
100644 blob 03e914c 6754 fileN
EDIT2リストで ./fileない:同じ結果の場合- フルツリーの代わりに- フルネーム
あなたはgitのLS-ツリー--long --abbrev --full- 'の出力を表示することができます名前a6cc7dfb40e8c513415315d6ed84143448bd4f99'? – Roman
申し訳ありませんが、やや間違ったコマンドです。 '--full-name'を' --full-tree'に置き換えて、もう一度実行してください(出力はおそらく同じですが、確かにそうです)。 – Roman
このチェックは[fsck.c](https://github.com/git/git/blob/1310affe024fba407bff55dbe65cd6d670c8a32d/fsck.c#L557)にあります。これは、文字通り '.'という名前のエントリがツリーに含まれていることを意味します。 'ls-tree'の出力で見ることができます。私は、これを修正する最も簡単な方法は、コマンドラインgitを使って問題のコミットを再作成することだと思います。 – Roman