【发布时间】:2015-04-17 21:00:54
【问题描述】:
我有两个 GIT 项目 A 和 B(空项目)。我想将整个项目 A 移动到项目 B 中,并在将所有文件从 A 移动到 B 时保留提交的历史记录。
使用 GIT 执行此操作的有效方法是什么?我尝试使用 git filter-branch 但似乎我没有以正确的方式这样做,因为它给了我“致命的...... xyz / is outside repository”。有人可以指点一下吗?
谢谢!
【问题讨论】:
-
如果项目 B 是您刚刚使用
git init初始化的空项目,请将其定义为项目 B 中的新remote并执行git push -u remoteb master。 -
感谢您的建议。我相信,您的意思是来自项目 A 的新“远程”?这种方式是否保留了 git 提交历史记录?
-
如果你进入你的项目A仓库,添加一个新的
remote指向项目B,然后执行上面的push命令,你的整个历史都会被保留。 -
Filter 分支如果你想preserve 肯定不是正确的工具,它更像是一个重写大部分历史的工具。我认为 Joël 想说“A:git remote add remoteb
”,然后是“A:git push -u remoteb master”(或您要推送的任何分支)。 -
我知道这种方法,但没有尝试实际验证它是否保留了提交历史。谢谢大家的建议。我会试一试。
标签: git history git-commit