27

「git checkout -b mybranch」でブランチを作成しました。何か問題があったようで、「git branch -D mybranch」で削除できなくなりました。エラー: ブランチ 'mybranch' が見つかりません。

4

6 に答える 6

61

本当にうまくいかない場合git branch -D、あなたの唯一の選択肢はそれを回避し、git チェックアウトの状態を自分で編集することです。チェックアウトのルート ディレクトリ (.gitディレクトリがある場所) に移動し、

  1. 編集.git/packed-refs; ブランチ名の行が表示されたら、それを削除します
  2. .git/refs/headsブランチにちなんで名付けられたファイルを探します。見かけたら削除
于 2012-06-15T12:44:34.993 に答える
8

以前git update-ref -d refs/heads/<branch name>はこの問題を修正していました。おそらく、これはGitのCLIを介してインターフェースされていることを除いて、選択された回答でRupが提案していることと同じことを行います。

于 2015-10-30T01:05:21.270 に答える
1

明らかに、存在しないブランチを削除する必要はありません。ブランチのリストを表示するために使用git branchします。ブランチがない場合はブランチがないため、削除する必要はありません。それ以外の場合は、名前を正しく入力して機能することを確認してgit branch -Dください。

それでも、まだ存在している可能性があるがアクセスできない壊れたブランチについてはあまり気にする必要はありません。Gitのブランチは、実際には単純な40バイトのファイルであるため、心配する必要はありません。

于 2012-06-14T08:35:07.933 に答える
1

私も同じ問題を抱えていました。コマンドを実行するたびに、ブランチはブランチのリストにありましたが、git branch削除できませんでした。

私の場合の解決策は単純で、少し予想外でした: 壊れたブランチをチェックアウトしgit checkout broken_branch(はい、動作しました)、マスターにチェックアウトして... 再度実行しgit branch -D broken_branchました。

于 2015-11-25T12:05:49.250 に答える
1

ブランチ名に特殊文字が含まれている場合は、引用符で囲む必要があります。

$ git branch -D 'ENH-Adding-unit-``julian``-to-``to_datetime``'
于 2016-05-06T05:43:47.750 に答える