通常、ブランチを削除する必要はありません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