web-dev-qa-db-ja.com

Gitで壊れた名前を削除する(ドロップボックスの競合するコピー)

リポジトリをDropboxに保存しましたが、ある日(下記の日付を参照)、クレイジーになりました。これで、ブランチ名をオートコンプリートしようとするたびにこれらの警告が表示されます

warning: ignoring ref with broken name refs/heads/develop (MacBook Pro's conflicted copy 2015-02-28)
warning: ignoring ref with broken name refs/heads/master (MacBook Pro's conflicted copy 2015-02-28)
warning: ignoring ref with broken name refs/remotes/Origin/develop (MacBook Pro's conflicted copy 2015-02-28)
warning: ignoring ref with broken name refs/remotes/Origin/master (MacBook Pro's conflicted copy 2015-02-28)
warning: ignoring ref with broken name refs/remotes/production/master (MacBook Pro's conflicted copy 2015-02-28)

これらの警告を修正するにはどうすればよいですか?

注:すべてのduplicate-trigger-happyの人々にとって-これは重複ではありません!警告の取得を停止するために上記の参照を削除したいだけです。gitリポジトリはそのままです

18
Nick Ginanto

dropboxが競合するファイルを見つけると、それらの名前をfilename (conflicted copy)に変更します(ご存知かもしれませんが)。したがって、これらのファイルの名前を再度変更する必要があります。

Gitディレクトリ内をいじることになるので、これはかなりデリケートな演習になる可能性があります。最初にリポジトリ全体のコピーをとる方がよいでしょう。今、このディレクトリに移動します

cd <repo>/.git/refs/heads

あなたはそれらのひどく名前が変更されたファイルを見つけるでしょう。どちらを保持するか(通常のコピーまたは競合するコピー)を確認し、不要なものを削除して、必要に応じて競合するコピーの名前を変更する必要があります。他のディレクトリでも同じことをする必要があります。

<repo>/.git/refs/remotes

[〜#〜] edit [〜#〜]:見つける各ファイルには、それらが指しているコミットのハッシュが含まれているだけです。したがって、どれを保持するかを確認したい場合は、どのコミットが実際に存在するか、およびそれらの参照がどこを指すようにするかを確認してください。

31
Chris Maes

おそらくgitバージョン(ubuntu 15.04から15.10)を更新した後にこの警告が表示され、実際には構成しなくなった古いぶら下がっているリモートの.git/refs/remotes内のディレクトリを削除するだけで済みました。

1
Eric Woodruff

リモートに存在しなくなったブランチを実行して剪定しました

git remote Prune Origin

それで問題は解決しました。

0
Vito Andolini