ara*_*aer 54
这实际上被称为"删除旧的主分支并从头开始创建新"
这将创建一个指向初始提交的新主分支:
git branch -D master
git checkout -b master <initial commit hash>
Run Code Online (Sandbox Code Playgroud)
这将创建一个全新的主分支,与您拥有的无关:
git branch -D master
git checkout --orphan master
git rm -rf *
Run Code Online (Sandbox Code Playgroud)
但实际上,您可以将当前存储库保存到其他位置并创建新的存储库.
Tod*_*obs 36
首先,您需要移动或删除当前的主分支.就个人而言,我更喜欢把它移到一边而不是删除它.之后,您只需使用该--orphan
标志创建一个没有父项的新分支.例如:
git branch -m master old_master
git checkout --orphan master
Run Code Online (Sandbox Code Playgroud)
由于当前分支现在没有历史记录,因此某些命令可能会失败并出现错误,fatal: bad default revision 'HEAD'
直到您在新主分支上进行第一次提交为止.这是正常的,与您在新近初始化的存储库中看到的行为相同.
其他答案建议创建一个新的主分支(就像在空存储库中一样)。但是没有历史的大师不是一个好习惯。这使得使用 rebase 变得困难,因为您永远无法对第一次提交进行 rebase。任何存储库上 master 的第一次提交都应该是空的。对此有一个低级管道解决方案:
首先你得到一个空的树哈希:
$ git hash-object -t tree /dev/null
4b825dc642cb6eb9a060e54bf8d69288fbee4904
Run Code Online (Sandbox Code Playgroud)
然后你使用树哈希创建一个空提交
$ git commit-tree -m "inital commit" 4b825dc642cb6eb9a060e54bf8d69288fbee4904
a5c0737b92e5e5d4502e15b93d7a46d1e17b2b22
Run Code Online (Sandbox Code Playgroud)
最后你将 master 重置为那个提交
$ git reset --hard a5c0737b92e5e5d4502e15b93d7a46d1e17b2b22
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
45971 次 |
最近记录: |