不支持 git checkout --orphan in --orphan 的替代方案
alternative to git checkout --orphan when --orphan is not supprted
我编写了一个脚本,该脚本会在某个时候运行
git checkout --orphan $BRANCH_NAME
git rm -rf *
git commit --allow-empty -m 'Orphaned Branch inited'
这完全符合我的意愿
现在要部署了,别问我为什么,这个服务器的git不支持--orphan选项,导致
error: unknown option `orphan'
git checkout --help 不显示选项
git --version 结果为
git version 2.9.2
根据我的阅读,--orphan 在 git 2.
之前就已存在
以任何方式接触服务器都不是一种选择,所以我需要重新编写我的脚本,所以我最终得到一个孤立的空分支(并且不会在这个过程中弄乱我的其他分支)
我怎样才能做到这一点?
提前致谢
编辑:更新了命令
一种方法是删除新分支的引用:
git checkout -b emptybranch
git rm -rf *
git update-ref -d refs/heads/emptybranch
git commit --allow-empty -m 'Orphaned Branch inited'
自 1.7.2 以来的任何 Git 都应该支持 --orphan
;然而,git checkout --orphan
需要一个 new 分支名称,对于尚不存在的分支。
如果你有不支持它的旧 Git(例如 CentOS 上的 Git 1.7),你可以使用 git update-ref
编写正确的(不存在的)新分支名称为 HEAD
:
git update-ref HEAD refs/heads/new-branch-that-does-not-exist-yet
首次提交此类分支会创建它。
我编写了一个脚本,该脚本会在某个时候运行
git checkout --orphan $BRANCH_NAME
git rm -rf *
git commit --allow-empty -m 'Orphaned Branch inited'
这完全符合我的意愿
现在要部署了,别问我为什么,这个服务器的git不支持--orphan选项,导致
error: unknown option `orphan'
git checkout --help 不显示选项 git --version 结果为
git version 2.9.2
根据我的阅读,--orphan 在 git 2.
之前就已存在以任何方式接触服务器都不是一种选择,所以我需要重新编写我的脚本,所以我最终得到一个孤立的空分支(并且不会在这个过程中弄乱我的其他分支)
我怎样才能做到这一点?
提前致谢
编辑:更新了命令
一种方法是删除新分支的引用:
git checkout -b emptybranch
git rm -rf *
git update-ref -d refs/heads/emptybranch
git commit --allow-empty -m 'Orphaned Branch inited'
自 1.7.2 以来的任何 Git 都应该支持 --orphan
;然而,git checkout --orphan
需要一个 new 分支名称,对于尚不存在的分支。
如果你有不支持它的旧 Git(例如 CentOS 上的 Git 1.7),你可以使用 git update-ref
编写正确的(不存在的)新分支名称为 HEAD
:
git update-ref HEAD refs/heads/new-branch-that-does-not-exist-yet
首次提交此类分支会创建它。