8

私はいくつかを実験しているので、他の場所に保存されているフックへのgithooksシンボリックリンクを使用して、ローカルのベアリポジトリをセットアップしました。hooks

masterブランチをgitレポにプッシュしましたが、もちろんフックは失敗しました。:)

gitレポを削除したり、シンボリックリンクを再作成したりすることなく、レポを何もリセットしたくありません。

master ブランチはリポジトリ内の唯一のブランチであるため、削除するにはどうすればよいですか?

$ git branch -d master
error: Cannot delete the branch 'master' which you are currently on.
4

2 に答える 2

18

masterrefを削除するには、 を使用しますgit update-ref -d refs/heads/master

なぜあなたはすべきではないのですrm /refs/heads/masterか?

packed-refs存在する可能性があるためrm、期待どおりに機能しないことがあります。

ところで、代わりに新しい空のレポを作成できる場合、リセットするポイントは何ですか? を使用するだけgit init --bare repo.gitです。

于 2012-09-03T10:42:17.797 に答える
1

通常、ブランチを削除する必要はありませんgit reset --hard REV。目的の新しいリビジョンに設定するために使用します。git initしかし、私が yuo を正しく理解していれば、それを「何もない」状態、つまりが最初に呼び出された直後の状態にリセットする必要があります。git ではそれができないようですが、単純に を削除するだけで同様の効果が得られます.git/heads/refs/master。新しく作成されたレポのデモは次のとおりです。

[~/x]$ git init
Initialized empty Git repository in /home/author/x/.git/
[~/x]$ touch a      
[~/x]$ git add a
[~/x]$ git commit -m foo
[master (root-commit) 5fcc99c] foo
 0 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 a
[~/x]$ git log
commit 5fcc99cc396cf5bc2c2fa9edef475b0cc9311ede
Author: ...
Date:   Mon Sep 3 12:40:15 2012 +0200

    foo

ここでこれを行いたいのですが、git では許可されていません。

[~/x]$ git reset --hard HEAD^
fatal: ambiguous argument 'HEAD^': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions

ただし、代わりにこれを行うことができます。

[~/x]$ rm .git/refs/heads/master 

何かをコミットして、それが機能したことを確認します

[~/x]$ touch b
[~/x]$ git add b
[~/x]$ git commit -m 'new history'
[master (root-commit) 0e692b9] new history
 0 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 a
 create mode 100644 b
[~/x]$ git log
commit 0e692b9bb77f526642dcdf86889ec15dfda12be0
Author: ...
Date:   Mon Sep 3 12:40:52 2012 +0200

    new history
[~/x]$ git branch 
* master
于 2012-09-03T10:44:51.633 に答える