我有一个git存储库(在github上),它具有项目的第一个状态,然后由第一个开发人员放弃。
我们已经决定收回这个项目,但我们同意不从前面的代码开始,因为它与我们计划做的完全不符,并且没有那么发达。
所以这是一个从头开始,但我想跟踪我们的前任做了什么,所以如果需要我们可以参考它。理想的情况是拥有一个git存储库,其中包含我们当前正在处理的master
分支,以及一个old-dev
分支,在初始提交时从master
拆分,跟踪旧版本的{ {1}}。
在阅读这些页面(renaming your master branch和how to create an empty branch)之后,我尝试使用master
创建一个新分支,并在将git branch --orphan new-dev
移动到该分支后将其替换为master
old-dev
使用git branch -m master old-dev
。但是git
表现得很奇怪,初始提交会复制旧的master
,然后让我删除所有内容。
我怎样才能做到干净利落的事情,让一个master
分支完全清除旧东西?
也许通过创建一个新的存储库并导入旧的存储库?或者是否有这样的工具可以帮助我一个github?我不知道该怎么办......
答案 0 :(得分:2)
正如“In git, is there a simple way of introducing an unrelated branch to a repository?”中提到的那样,git checkout --orphan
“并不完全符合提问者的要求,因为它填充了<start_point>
的索引和工作树(因为这是,毕竟,checkout
命令)“
更清晰的解决方案是 create your new master
branch in a new git repo ,然后在当前仓库中导入该分支(其中master
已重命名,且没有{{} 1}}分支)
master
这样,您的$ cd /path/to/repo
$ git fetch /path/to/unrelated master:master
分支就从干净的历史开始。
答案 1 :(得分: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和一个干净的目录中拥有旧代码。