代码之家  ›  专栏  ›  技术社区  ›  Francisco De Zuviria

git签出的替代方法--孤立时--不支持孤立

  •  0
  • Francisco De Zuviria  · 技术社区  · 7 年前

    我已经编写了一个脚本,可以在某些时候运行

    git checkout --orphan $BRANCH_NAME
    git rm -rf *
    git commit --allow-empty -m 'Orphaned Branch inited'
    

    这正是我想要的工作

    现在我必须部署它,不要问我为什么,这个服务器的git不支持--孤立选项,导致

    error: unknown option `orphan'
    

    git签出--帮助不显示该选项 git--版本结果

    git version 2.9.2
    

    从我读到的内容来看,--孤儿在git 2之前就已经存在了。

    以任何方式接触服务器都不是一个选项,因此我需要重新编写脚本,以得到一个孤立的空分支(并且在这个过程中不会弄乱我的其他分支)

    我怎样才能做到这一点?

    提前感谢

    编辑:更新命令

    2 回复  |  直到 7 年前
        1
  •  1
  •   torek    7 年前

    自1.7.2以来的任何Git都应该支持 --orphan ; 然而 git checkout --orphan 需要 分支名称,用于尚未存在的分支。

    如果您有一个较旧的Git不支持它(例如CentOS上的Git 1.7),您可以使用 git update-ref 将正确(不存在)的新分支名称写入 HEAD :

    git update-ref HEAD refs/heads/new-branch-that-does-not-exist-yet
    

    第一次提交这样一个分支就会创建它。

        2
  •  0
  •   Allen Luce Bastian Ballmann    7 年前

    一种方法是去掉新分支的ref:

    git checkout -b emptybranch
    git rm -rf *
    git update-ref -d refs/heads/emptybranch
    git commit --allow-empty -m 'Orphaned Branch inited'