3

我有一个 git 存储库(在 github 上),它具有项目的第一个状态,该项目已启动,然后被其第一个开发人员放弃。

我们有些人已经决定收回这个项目,但我们同意不从以前的代码开始,因为它与我们计划做的不完全匹配,而且没有那么发达。

所以这是从头开始,但我想跟踪我们的前任所做的工作,以便我们在需要时参考它。理想的情况是有一个 git 存储库,其中包含我们master目前正在处理的分支,以及一个old-dev分支,在初始提交时拆分master,跟踪旧版本的master.

在阅读了这些页面(重命名您的主分支以及如何创建一个空分支)之后,我尝试使用git branch --orphan new-dev创建一个新分支并master在将其移至old-dev使用后替换为该分支git branch -m master old-dev。但随后git行为奇怪,使初始提交复制旧master,然后让我删除所有内容。

我怎样才能干净地做我正在尝试的事情,让master分支完全清除旧东西?也许通过创建一个新的存储库并导入旧的?或者有这样的工具一个github可以帮助我吗?我不确定如何继续...

4

2 回答 2

3

正如“在 git 中,是否有一种将不相关的分支引入存储库的简单方法? ”中提到的那样,git checkout --orphan“并没有完全按照提问者的要求进行操作,因为它填充了索引和工作树<start_point>(因为这是,之后全部,一个checkout命令)”

所以一个更干净的解决方案是在一个新的 git repo 中创建你的新master分支,然后在你当前的 repo 中导入那个分支(在那里master被重命名,并且还没有一个master分支)

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

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

于 2013-07-28T09:52:41.437 回答
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 中拥有旧代码和一个干净的目录。

于 2013-07-28T09:20:58.713 回答