master からブランチを作成したいのですが、このブランチに空のツリーが必要です。少し調べたところ、次のような状況にたどり着きました。
- マスター ブランチには、ダミー ファイルを含む単一のコミットがあります。
- 新しいブランチをチェックアウトします
- すべてのファイルを削除してコミットします
- --allow-empty で新しいコミットを作成します
次のコマンドでそれが可能になります。
$ git init
$ touch dummy
$ git add .
$ git commit -m 'initial commit'
$ git checkout -b new-branch
$ git rm -rf .
$ git commit -m 'clean up tree'
$ git commit --allow-empty -m 'new branch initial commit'
ここで、「ツリーのクリーンアップ」コミットを取り除きたいと思います。rebase --onto like を使用しようとしています
$ git rebase --onto HEAD~2 HEAD^
しかし、最終的には単一のコミット (「初期コミット」) とそのすべての参照 (HEAD、マスター、新しいブランチ) になります。そして、新しいブランチにチェックアウトすると、ダミーファイルが戻ってきます。
「新しいブランチの最初のコミット」はどこに行ったのですか? 私は行方不明ですか?
Obs .: これらのブランチを関連付けたいが、親コミットからファイルを保持したくないため、これを行っています。