首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从现有的本地分支创建新的git存储库

从现有的本地分支创建新的git存储库
EN

Stack Overflow用户
提问于 2011-11-28 01:29:23
回答 3查看 4.9K关注 0票数 7

我有一个包含两个分支的Git存储库:masterredesignredesign分支是从master创建的,从那时起就再也没有接触过master

代码语言:javascript
复制
master
...|--m50--\
            \--m51--|--m52--|--m53-- redesign

redesign分支发展如此之快,以至于我想从它创建一个新的整个存储库,将redesign的第一次提交作为新存储库的初始提交,并忘记从master继承的以前的历史记录

代码语言:javascript
复制
master
...|--m50--

redesign
--r1--|--r2--|--r3--

Git可以做到这一点吗?这有一个related question,但它的目标是使用目录,而不是分支。

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-28 01:41:40

您可以:

checkout of the >签出您想要的新存储库的根目录的提交,然后将所有文件复制到您的新目录中(除了directory)

  • check out redesign
  • .git生成的所有修补程序文件位于某个方便的

位置

然后转到您的新目录并:

代码语言:javascript
复制
$ git init
$ git add .           # make sure your .gitignore is in place though
$ git commit -m"..."
$ git am /path/to/patches/*.patch
票数 8
EN

Stack Overflow用户

发布于 2011-11-28 01:44:52

首先,复制或克隆git存储库。

然后,找出新根提交的散列(图中的m51)。将其提交散列放入文件.git/info/grafts中,然后运行git filter-branch --all。验证操作成功后,可以删除original/*备份refs (或重新克隆存储库)。

请注意,这将为所有提交创建新的提交散列,因此您必须小心已发布的历史记录。

票数 1
EN

Stack Overflow用户

发布于 2013-07-08 21:40:32

创建新的存储库,然后:

代码语言:javascript
复制
$ 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

注意:如果你想保留历史记录(或者不关心),省略“清理”的创建。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8287480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档