【发布时间】:2012-07-24 14:01:20
【问题描述】:
我正在开发一个 HTML5 游戏引擎。我使用 Git 作为 SV 和 GitHub 来实际托管项目。
我对设计做了一些实质性的改变(主要是切换到实体系统范式),我认为是时候换一个新引擎了。
我想以旧引擎为基础,因为我可以使用很多代码。
这样做的标准方法是什么?新引擎将有一个新名称,旧引擎将被视为“完成”。
【问题讨论】:
我正在开发一个 HTML5 游戏引擎。我使用 Git 作为 SV 和 GitHub 来实际托管项目。
我对设计做了一些实质性的改变(主要是切换到实体系统范式),我认为是时候换一个新引擎了。
我想以旧引擎为基础,因为我可以使用很多代码。
这样做的标准方法是什么?新引擎将有一个新名称,旧引擎将被视为“完成”。
【问题讨论】:
如果你的意思是你想要一个带有新仓库的新项目,但要与旧项目共享历史,那么简单的方法是
$ git clone https://github.com/your_name/old_project new_project
# make new, empty project on GitHub called new_project
$ cd new_project
$ git remote rename origin old_project
$ git remote add origin https://github.com/your_name/new_project
$ git push -u origin
现在您有了一个新项目,但在您的本地克隆中,您仍然可以从旧项目中获取提交,以使用git cherry-pick 等对公共代码进行错误修复。
【讨论】:
你需要分支
git branch <your_new_branch>
git checkout <your_new_branch>
切换回旧分支
git checkout master
列出所有分支
git branch
【讨论】:
git remote add new_repo git://github.com/foo/bar 中的远程,现在您可以推送到该 repo 并说 git push new_repo your_branch。如果新版本基于以前的版本,我建议您对项目进行核心分支。