我有一个包含两个分支的Git存储库:master和redesign。redesign分支是从master创建的,从那时起就再也没有接触过master:
master
...|--m50--\
\--m51--|--m52--|--m53-- redesignredesign分支发展如此之快,以至于我想从它创建一个新的整个存储库,将redesign的第一次提交作为新存储库的初始提交,并忘记从master继承的以前的历史记录
master
...|--m50--
redesign
--r1--|--r2--|--r3--Git可以做到这一点吗?这有一个related question,但它的目标是使用目录,而不是分支。
谢谢!
发布于 2011-11-28 01:41:40
您可以:
checkout of the >签出您想要的新存储库的根目录的提交,然后将所有文件复制到您的新目录中(除了directory)
redesign.git生成的所有修补程序文件位于某个方便的位置
然后转到您的新目录并:
$ git init
$ git add . # make sure your .gitignore is in place though
$ git commit -m"..."
$ git am /path/to/patches/*.patch发布于 2011-11-28 01:44:52
首先,复制或克隆git存储库。
然后,找出新根提交的散列(图中的m51)。将其提交散列放入文件.git/info/grafts中,然后运行git filter-branch --all。验证操作成功后,可以删除original/*备份refs (或重新克隆存储库)。
请注意,这将为所有提交创建新的提交散列,因此您必须小心已发布的历史记录。
发布于 2013-07-08 21:40:32
创建新的存储库,然后:
$ git add remote newrepo <path to newrepo>
$ git checkout redesign
$ git checkout --orphan clean
# The branch is empty, but the files from the original branch are staged for commit.
$ git commit -m"clean"
$ git push newrepo clean:master注意:如果你想保留历史记录(或者不关心),省略“清理”的创建。
https://stackoverflow.com/questions/8287480
复制相似问题