0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Git の remoteリポジトリを削除したときに error: could not delete references: cannot lock ref 'refs/remotes/origin/branch_name` となる場合の対処法

Posted at

発生していた内容

Git リポジトリを変更するため origin を一度削除しようとした時に、以下のエラーが発生しました。

$ git remote remove origin
error: could not delete references: cannot lock ref 'refs/remotes/origin/feature/ticket-123': Unable to create '/path/to/project/.git/refs/remotes/origin/feature/ticket-123.lock': File exists.

原因

大文字と小文字の判別が Git とファイルシステムで差異があることが原因です。

例えば、下記2つのブランチが存在している場合:

  • feature/ticket-123
  • feature/TICKET-123

ファイルシステムでは、大文字小文字の違いを区別せずに同じファイルが存在しているとみなしています。

対応策

  • .git/packed-refs を編集して、重複している ref を削除することで対応できます。

編集前:

a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0 refs/remotes/origin/feature/ticket-123
b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1 refs/remotes/origin/feature/TICKET-123
c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2 refs/remotes/origin/feature/ticket-456

編集後:

a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0 refs/remotes/origin/feature/ticket-123
c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2 refs/remotes/origin/feature/ticket-456

Gitのブランチルールを徹底する、Gitのブランチをこまめに整理する、などで防げる内容かと思います。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?