我想创建一个名为的新GitHub分支release
。
该分支必须为空!但是,现有分支具有x提交,我不想拥有其提交历史记录。
我发现的唯一方法是创建本地 --orphan
分支。
Answers:
--orphan
选项有什么问题?如果您想要的分支是空的并且没有历史记录,这就是要走的路...
git checkout --orphan empty-branch
然后,您可以删除暂存区域中将拥有的所有文件(以使它们不会被提交):
git rm -rf .
此时,您的计算机上有一个空分支。
在推送到GitHub(或任何其他Git存储库)之前,您将至少需要进行一次提交,即使其中没有任何内容(即,空提交),因为您不能推送空分支。
git commit --allow-empty -m "root commit"
最后,将其推到遥控器上,然后打开啤酒
git push origin empty-branch
git add .
在删除所有文件之后再提交之前,它缺少一个步骤?
--orphan
对于在本地创建一个空分支很有用,但是,为了推送它或与其他分支交互,您将需要提交。
在孤立的分支上创建新的提交不是一个好主意,因为您将无法与其他分支进行交互。即
git checkout --orphan test
git commit --allow-empty -m "init test branch"
git merge master
fatal: refusing to merge unrelated histories
相反,您应该更喜欢从master的第一次提交创建一个新分支。如果提交不为空,则可以在第一个提交之前添加一个空提交,如@houtanb所述。
公认的答案使我遇到了一些问题,所以我这样做:
$ git branch
* staging
$ git branch master c74d99cf46f6ed23e742f2617e9908294b4a608b
$ git checkout master
Switched to branch 'master'
并得到了我想要的内容,并且没有合并/请求请求问题。我只需要选择一个基本提交即可从中创建第二个分支。