4

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

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

4

5 回答 5

10

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

  1. cd 进入项目目录的根目录。
  2. 从文件系统中删除您不想要的所有内容。小心离开 .git/ 文件夹。那是您的存储库以前的历史记录。
  3. 添加您想要的任何新内容(新的 Xcode 项目、目录结构等)。
  4. 当您准备好提交时,git status会向您展示大量的删除和添加内容(其大小取决于您曾经拥有的文件数量)。没关系,您可以在这里对所有这些条目进行粗略的处理,使用git add --all .. 这将在你的 repo 中暂存所有内容、删除、新增内容,所有这些。
  5. git commit -m "My new beginning".
  6. git push origin myBranch --force

瞧!您的存储库已完全改建,还有保留您以前的历史记录的额外好处。

于 2013-02-04T19:33:00.123 回答
3

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

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

那应该这样做。

于 2013-02-03T02:53:36.707 回答
0

您可以在 GitHub 和 .git/config 中创建一个新项目,将 url 更改为新的 repo

[remote "origin"]
   fetch = +refs/heads/*:refs/remotes/origin/*
   url = git@github.com:[yourname]/[yournewrepo]
于 2013-02-03T02:51:27.780 回答
0

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

于 2014-08-31T05:26:46.983 回答
0

面对类似的问题,我使用了 Stan 的建议(回答于 2014 年 8 月 31 日 5:26)。下面详细介绍了我为取得积极结果而采取的行动。

假设:

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

期望:

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

解决方案:

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

2)在那里找到隐藏的“.git”文件夹并复制它

3)转到您机器上的新项目文件夹

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

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

6)如果您使用例如VS,您可以检查代码的变化。会有很多,或者在终端检查它们。您可以检查是否删除了旧文件并添加了新文件。

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

8) 现在您可以从本地机器上删除旧项目并删除这个重命名的新 git 隐藏文件夹(它在第 4 点被重命名)。

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

希望能帮助到你。

于 2019-08-22T13:14:13.653 回答