一、切换方法

切换到当前要初始化的分支

1
git checkout main

创建一个孤儿分支,如init_again

1
git checkout --orphan init_again

添加所有文件

1
git add -A

做一次提交

1
git commit -am 'initial commit'

删除main分支

1
git branch -D main

更改当前分支为main分支

1
git branch -m main

将本地所有更改强制 push 到远程仓库

1
git push -f origin main

关联本地 main 到远程 main

1
git branch --set-upstream-to=origin/main

二、Gitlab 时 push 不上去的问题

如果是 Gitlab 的服务器,在 Push 的时候可能会有保护的问题

1
Git push error pre-receive hook declined

解决办法

  • 进入 Gitlab 后台,进入当前工程

  • Setting => Repository => Protected Branches

  • 点击展开Expand后,会有一个Protect a branch 的设置

  • 选择好分支的权限组后,再打开Allowed to force push

  • 点击按钮Protect

  • 此时会在下面弹出一个询问,选择UnProtect

然后再客户端重新 push 即可

三、如果撤销孤儿分支

How To Undo git checkout –orphan
如果已创建了一个孤儿分支,如何撤销恢复到原来的呢,只需要切换一下就可以

1
2
3
4
5
# check that your current branch is the orphan one
git branch
git reset <anExistingBranch>
# or
git checkout -B <anExistingBranch>