使用git备份和重置主分支?

3
我有一个git存储库(在github上),其中包含了一个项目的第一个状态,该项目由其第一个开发人员开始然后被放弃。
我们决定重新开始这个项目,但我们同意不从以前的代码开始,因为它并不完全符合我们计划做的事情,而且也没有得到很好的开发。
所以这是从零开始,但我想保留我们的前任所做的记录,以便在需要时参考。理想情况下,我们希望有一个git存储库,其中包含我们当前正在工作的master分支和一个old-dev分支,从初始提交时分离出master,跟踪master的旧版本。
阅读完这些页面(重命名您的主分支如何创建一个空分支),我尝试使用git branch --orphan new-dev创建一个新分支,并在将其移动到old-dev后将master替换为此分支,使用git branch -m master old-dev。但是,然后git表现奇怪,进行初始提交并复制旧master,然后让我删除所有内容。

我该如何干净地完成我想要的操作,使master分支完全不受旧内容的影响? 也许通过创建一个新存储库并导入旧存储库来实现?或者在GitHub上有一些工具可以帮助我吗?我不确定该如何继续...

2个回答

3
“在git中,是否有一种简单的方法将一个不相关的分支引入到存储库中?”中所述,git checkout --orphan“并不能完全满足提问者的要求,因为它会通过<start_point>从索引和工作区进行填充(毕竟这是一条checkout命令)”。

因此,更清晰的解决方案是在新的git存储库中创建您的新master分支,然后将该分支导入到当前存储库中(其中master已重命名,并且尚不存在master分支)。

$ cd /path/to/repo
$ git fetch /path/to/unrelated master:master

这样,您的master分支将从干净的历史记录开始。

0
git checkout old_master -b
git checkout master
rm [all the old directories and files but not .git mind you]
git add -u .
gir commit -m "Brave new world"

现在你将拥有旧代码的分支old_master和一个干净的目录。


可以,但这样做会保留旧开发者的所有提交历史记录在主分支中。我的问题是如何摆脱这些历史记录。 - Levans

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接