我在 github 上设置了一个 iOS 项目,在过去的几天里,我开始意识到我需要重构我的大部分代码。我构建项目时没有遵守 MVC 的许多基础知识,现在想回去修复所有问题。
主要问题是项目足够大,重构将是一个巨大的痛苦。无论如何我可以开始一个新项目,将其构建到当前项目所在的位置(显然有一些重大的设计更改)并将其推送到 github 到同一个分支而不是原始项目?如果不清楚,请告诉我。
考虑到您希望保留旧历史,我会稍微扩展给定的答案。在这种情况下,您不想开始新的回购;您只想“处理”旧数据,清除旧数据并添加新数据。您可以通过以下步骤完成此操作:
git status
会向您展示大量的删除和添加内容(其大小取决于您曾经拥有的文件数量)。没关系,您可以在这里对所有这些条目进行粗略的处理,使用git add --all .
. 这将在你的 repo 中暂存所有内容、删除、新增内容,所有这些。git commit -m "My new beginning"
.git push origin myBranch --force
瞧!您的存储库已完全改建,还有保留您以前的历史记录的额外好处。
你可以。只需创建新项目并在命令行界面(Windows 中的 cmd,Linux 中的终端)中键入以下命令。
cd /path/to/project
git remote add origin git@github.com:username/repo.git
git push origin master --force
那应该这样做。
您可以在 GitHub 和 .git/config 中创建一个新项目,将 url 更改为新的 repo
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@github.com:[yourname]/[yournewrepo]
我发现最简单的方法是将您的 .git 文件/文件夹复制到新项目中。
面对类似的问题,我使用了 Stan 的建议(回答于 2014 年 8 月 31 日 5:26)。下面详细介绍了我为取得积极结果而采取的行动。
假设:
期望:
解决方案:
1)转到本地计算机上的“旧项目”文件夹
2)在那里找到隐藏的“.git”文件夹并复制它
3)转到您机器上的新项目文件夹
4)检查是否有 .git 文件夹(它是隐藏的,所以你需要显示隐藏文件) - 如果有 .git 文件夹重命名它,你可以删除它,但最好现在重命名并删除,如果一切都会去按计划 - 如果没有 .git 文件夹,请转到下面的第 5 点。5)粘贴先前复制的.git文件夹(来自旧项目)并将其粘贴到“新项目”文件夹中
现在,新项目有一个 .git 文件夹,其中包含所有以前的更改和历史记录,并包含对 GitHub 上旧 repo 的 URL 的引用。
6)如果您使用例如VS,您可以检查代码的变化。会有很多,或者在终端检查它们。您可以检查是否删除了旧文件并添加了新文件。
7)推送实际的新项目。这个新项目将被推送到你在 GitHub 上的旧仓库。检查您在网络上的 git repo 以确保一切顺利。
8) 现在您可以从本地机器上删除旧项目并删除这个重命名的新 git 隐藏文件夹(它在第 4 点被重命名)。
现在您可以开发您的新项目,同时保留所有旧历史。
希望能帮助到你。