备份然后用git重置master分支?

时间:2013-07-28 09:07:55

标签: git github

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

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

所以这是一个从头开始,但我想跟踪我们的前任做了什么,所以如果需要我们可以参考它。理想的情况是拥有一个git存储库,其中包含我们当前正在处理的master分支,以及一个old-dev分支,在初始提交时从master拆分,跟踪旧版本的{ {1}}。

在阅读这些页面(renaming your master branchhow to create an empty branch)之后,我尝试使用master创建一个新分支,并在将git branch --orphan new-dev移动到该分支后将其替换为master old-dev使用git branch -m master old-dev。但是git表现得很奇怪,初始提交会复制旧的master,然后让我删除所有内容。

我怎样才能做到干净利落的事情,让一个master分支完全清除旧东西? 也许通过创建一个新的存储库并导入旧的存储库?或者是否有这样的工具可以帮助我一个github?我不知道该怎么办......

2 个答案:

答案 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和一个干净的目录中拥有旧代码。