Github,推动一个新项目取代旧项目

时间:2013-02-03 02:46:36

标签: git github git-push

我在github上有一个iOS项目设置,在过去的几天里我开始意识到我需要重构我的大部分代码。我构建的项目不遵循MVC的许多基础知识,现在想回去修复所有内容。

主要问题是该项目足够大,重构将是一个巨大的痛苦。 无论如何,我可以启动一个新项目,将它构建到当前所在的位置(显然有一些主要的设计更改)并将其推送到同一分支而不是原始项目吗?如果不清楚,请告诉我。

5 个答案:

答案 0 :(得分:9)

考虑到你希望保留旧历史,我会稍微扩展给定的答案。在这种情况下,您不想开始新的回购;你只是想“处理”旧的,清理旧数据并添加新数据。您可以通过以下步骤完成此操作:

  1. 进入项目目录的根目录。
  2. 从文件系统中删除您不想要的所有内容。小心离开.git /文件夹。这是您的存储库以前的历史。
  3. 添加您想要的任何新内容(新的Xcode项目,目录结构等)。
  4. 当你准备好提交时,git status将会显示一些混乱(其大小将取决于你曾经拥有多少文件)的删除和添加。没关系,这是您使用git add --all .对所有这些条目进行广泛刷新的地方。这将在您的回购,删除,新增内容中完成所有内容。
  5. git commit -m "My new beginning"
  6. git push origin myBranch --force
  7. 瞧!您的存储库已完全完成,并保留了以前的历史记录。

答案 1 :(得分:2)

你可以。只需创建新项目并在命令行界面中键入以下命令(Windows中的cmd,linux中的终端)。

cd /path/to/project
git remote add origin git@github.com:username/repo.git
git push origin master --force

应该这样做。

答案 2 :(得分:0)

您可以在GitHub和.git / config中创建新项目,将网址更改为新的存储库

[remote "origin"]
   fetch = +refs/heads/*:refs/remotes/origin/*
   url = git@github.com:[yourname]/[yournewrepo]

答案 3 :(得分:0)

我发现最简单的方法是将.git文件/文件夹复制到新项目中。

答案 4 :(得分:0)

面对类似的问题,我使用了Stan的建议(从14年8月31日在5:26回答)。 以下是我采取的积极行动的详细信息。

假设:

  • “旧项目”在GitHub存储库上
  • “新项目”是在您的计算机上本地创建的。

期望:

  • 必须将新项目推送到github上的旧仓库中
  • 旧提交历史必须保留并在github中可见

解决方案:

1)转到本地计算机上的“旧项目”文件夹

2)在此处找到隐藏的“ .git”文件夹并复制

3)转到计算机上的新项目文件夹

4)检查是否存在.git文件夹(该文件夹已隐藏,因此您需要显示隐藏的文件)-如果存在.git文件夹重命名,则可以将其删除,但最好立即重命名并删除一切都会按计划进行-如果没有.git文件夹,请转到下面的第5点。 5)粘贴先前复制的.git文件夹(来自旧项目),并将其粘贴到“新项目”文件夹中

现在,新项目有一个.git文件夹,其中包含以前的所有更改和历史记录,并包括对GitHub上旧仓库的URL的引用。

6)如果使用的是VS,则可以检查代码中的更改。会有很多,或者在终端中检查它们。您可以检查旧文件是否已删除,新文件是否已添加。

7)推送实际的新项目。这个新项目将被推送到GitHub上的旧仓库中。在网上检查您的git repo,以确保一切顺利。

8)现在,您可以从本地计算机上删除旧项目,并删除此重命名的新git隐藏文件夹(在第4点中已重命名)。

现在您可以开发新项目,并保留所有旧历史。

希望有帮助。