我刚刚发现了 git checkout --orphan,但我不知道如何使用它。它的帮助页面说它创建了一个 新的无父母分支。
git checkout --orphan
在 master分支中,我尝试了 git checkout --orphan br,只看到工作目录中的文件改为 & ldquo;。
master
git checkout --orphan br
那么使用 git checkout --orphan的优点是什么呢?
例如 GitHub 页面,它将回购的网站存储在回购的内部,但是存储在一个单独的分支上。除了网站的历史记录,没有理由存储任何东西在这个分支上。
git checkout --orphan的核心用途是在非新存储库上创建类似于 git init状态的分支。
git init
如果没有这种能力,git 分支的 所有将有一个共同的祖先,即初始提交。这是一个常见的情况,但绝不是唯一的一个。例如,git 允许您将多个独立项目作为单个存储库中的不同分支进行跟踪。
这就是为什么您的文件被报告为“将要提交的更改”: 在 git init状态下,第一次提交尚未创建,因此所有文件都是 git 新创建的。
我们正在从私有回购转移到公共回购,由于敏感的提交信息,我们希望将一个分支重置为 new,并将其作为空分支推送。下面是一个典型的工作流程:
new
如何在 github 中删除所有提交历史?
另一个可能有用的用例是构建机器或虚拟实例,用于需要特定。Git 文件夹设置(例如用户、远程 URL)以及由于空间限制而丢弃的所有历史记录。 不使用诸如 Docker 这样的容器的遗留设置通常是这种情况。
它通常针对专用的部署分支,而不是处理 master。一旦将新分支推送到 remote,在实例上执行:
git clone [remote-url] --branch [name] --single-branch [folder]
当直接使用 master (不推荐)时,浅克隆是一个更好的选择:
git clone -–depth [depth] [remote-url]