git checkout –orphan是做什么用的?


What is `git checkout --orphan` used for?

我刚刚发现了git checkout --orphan,但是我不知道如何使用它。 它的帮助页面说它创建了一个新的非父分支。

master分支中,我尝试了git checkout --orphan br,只是看到工作目录中的文件更改为"要提交的更改",并且git log说了fatal: bad default revision 'HEAD'

那么使用git checkout --orphan有什么好处?


git checkout --orphan的核心用途是在非新存储库上以类似git init的状态创建分支。

没有这种能力,您所有的git分支都将有一个共同的祖先,即您的初始提交。这是很常见的情况,但绝不是唯一的情况。例如,git允许您将多个独立项目作为单个存储库中的不同分支进行跟踪。

这就是为什么您的文件被报告为"要提交的更改"的原因:在git init状态下,尚未创建第一个提交,因此所有文件都是git新的。


它被例如GitHub Pages,将存储库的网站存储在存储库中但位于单独的分支上。除了该网站的历史记录外,没有任何其他原因可以存储该分支机构。


我们正从私有仓库转移到公共仓库,由于敏感的提交信息,我们希望将分支重置为new并将其推送为空白分支。这是工作流的典型方式:

如何删除github中的所有提交历史记录?