git参照 `refs / original / refs / heads / master`を削除するには?


回答:


11

タグのように見えるため、次のコマンドが機能するはずです。

git tag -d refs/original/refs/heads/master

しかし、そうではないと言っているので、.gitディレクトリからファイルを削除するだけです。リポジトリのルートから、次のようなコマンドで取得できます。

rm .git/refs/tags/refs/original/refs/heads/master

git-tagコマンドが失敗した場合、パスがわずかに異なる可能性があるcd .git/refsため、試行錯誤して問題のあるヘッドを見つけて見つけることができます。ファイルを削除すると、ローカルリポジトリから参照が削除されます。


2
タグではありませんが、として見つけました.git/refs/original/refs/heads/master
謝Jìléi

1
git update-refGitの内部を手動で変更するのではなく使用します。Alexeyの回答を参照してください。
wchargin

100

このコマンドは動作するはずです

git update-ref -d refs/original/refs/heads/master

これは同じ問題で私にとってはうまくいきました。参照は.git / packed-refsというファイルに保存されていることに注意してください。これを開くと、SHAと文字列「refs / original / refs / heads / master」の行が表示されます。おそらくその行を削除できますが、安全のためにこのコマンドを使用します。
マットN

14
+1:refを指定するだけでなく、常に使用する必要があります。そうしないと、悪いことが起こる可能性があります。git update-ref -drm
カラムロジャース

3
これは受け入れられる答えである必要があります
ダニエルアルダー

1
@CallumRogersなぜ?
wahnfrieden

6
gitのがパックREFを使用する可能性があるため@wahnfriedenとには、対応するファイルは存在しませんrefsディレクトリ
アレクセイテン

17

これは参照です。通常、作成者git filter-branch-実行前のブランチの場所へのポインタですgit filter-branch

また ref を削除するために、ローカルリポジトリで常に何もプッシュできません。

git push . :refs/original/refs/heads/master

他の回答は、削除の他の方法もかなり網羅しています。


1
参照をローカルで削除するために「何もプッシュしない」のは非常に賢い方法です。
40XUserNotFound

私の一日を作りました。リモートがもう存在しないというリモートタグへの参照がありました。これが機能した唯一のコマンドです。
RW4
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.