“ Git checkout ——孤儿”是干什么用的?

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

master分支中,我尝试了 git checkout --orphan br,只看到工作目录中的文件改为 & ldquo;。

那么使用 git checkout --orphan的优点是什么呢?

36121 次浏览

例如 GitHub 页面,它将回购的网站存储在回购的内部,但是存储在一个单独的分支上。除了网站的历史记录,没有理由存储任何东西在这个分支上。

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

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

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

我们正在从私有回购转移到公共回购,由于敏感的提交信息,我们希望将一个分支重置为 new,并将其作为空分支推送。下面是一个典型的工作流程:

如何在 github 中删除所有提交历史?

另一个可能有用的用例是构建机器或虚拟实例,用于需要特定。Git 文件夹设置(例如用户、远程 URL)以及由于空间限制而丢弃的所有历史记录。 不使用诸如 Docker 这样的容器的遗留设置通常是这种情况。

它通常针对专用的部署分支,而不是处理 master。一旦将新分支推送到 remote,在实例上执行:

git clone [remote-url] --branch [name] --single-branch [folder]

当直接使用 master (不推荐)时,浅克隆是一个更好的选择:

git clone -–depth [depth] [remote-url]