我想用master创建一个分支但是我需要这个分支有一个空树。经过一番研究后,我得出以下情况:
以下命令可以帮助您:
$ 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 - 就像
$ git rebase --onto HEAD~2 HEAD^
但我最终只有一次提交('初始提交')和所有引用(HEAD,master,new-branch)。如果我签入新分支,则会返回虚拟文件。
我的新分支初始提交的位置是什么?去?我失踪了什么?
Obs。:我这样做是因为我想关联这些分支,但我不想保留父提交中的文件。
答案 0 :(得分:1)
true | git mktree | xargs git commit-tree -p master | xargs git branch new-branch
这是
中最快的单行emptytree=$(git mktree </dev/null)
emptycommit=$(git commit-tree -p master $emptytree </dev/null)
git branch new-branch $emptycommit