【问题标题】:Loading Changes into Git from non-repository directories将更改从非存储库目录加载到 Git
【发布时间】:2018-05-10 00:53:32
【问题描述】:

我再次探索了愚蠢的极限。我有两个目录,我们称它们为 D1 和 D2。 D1 是我最初开发应用程序的地方,也是设置 git 存储库的地方。我还在 github 上创建了一个远程存储库。 当我更改 IDE 时,我将 D1 复制到一个新目录 D2,并将项目移植到 Android Studio。然后,作为一个白痴,我继续对 D2 中的代码进行大量更改,以使代码在 Android Studio 下编译并在 Android Nougat 下运行。

现在,我在 D2 中有一堆文件是 D1 中文件的更新版本,我希望更新存储库,最好将存储库移动到 D2。我仍然对 Git 相当缺乏经验。我怎样才能安全地做到这一点?

附加信息 2017 年 11 月 27 日

D1 的目录布局是 Eclipse/ADT 的,而 D2 的布局是 Android Studio。目录树不同。因此,我希望复制 git 目录的想法之一不会奏效。看起来我将不得不尝试复制源文件,但我仍然有一个问题,即当我进行克隆时,Android Studio 的目录结构将不正确。还是我完全错过了什么?

我进行了更多挖掘并找到了这篇文章,我认为这意味着我可以安全地在 repo 中移动目录。

Can Git restructure my folders without losing history?

感谢您的帮助!

【问题讨论】:

  • 我仍在尝试提出正确的步骤,以便最终在 Android Studio 下获得正确的源代码,并且我的 git 存储库将使用该目录树。跨度>

标签: java android git android-studio


【解决方案1】:

最明显的做法是将修改后的目录和文件从 D2 复制到 D1。 Git 将获取更改,您可以提交它们。尽管如果您从 D1 到 D2 进行了完整的复制,那么 D2 也可能是您的 repo 的副本。您也许可以从那里提交更改。

如果 D2 不是 repo,您​​只需将 git 目录、文件等复制到 D2,git 就会获得所需的信息。或者您可以删除 D2 中的所有内容并将项目重新克隆到其中。重要的是您的更改在您的存储库中,因此您可以随时随地查看。

【讨论】:

  • 我要试试这个。我试过后会发表评论。谢谢。
  • 我看了一下将git目录复制到D2,但是D1是在Eclipse/ADT下构建的,D2是Android Studio,所以文件布局不一样。这将比我想象的更艰难。
  • 哦,那是一个不同的蜡球。在这种情况下,我的建议是先将 D1 升级为 Android Studio 的项目格式。如果它搞砸了,您可以恢复到以前的提交。成功升级项目后(并在成功转换后立即提交),然后移动您的目录/文件更改。我肯定会分步执行此操作:首先,将 D1 转换为 Android Studio,提交成功的转换,然后移动您的更改。
  • 我实际上决定做的是开始一个新的 repo,因为我们已经切换到新的 IDE。我们将保留旧的 repo 用于历史资料,并且知道这一切都适用于 Eclipse,而新的 repo 将适用于 AndroidStudio。不过,这个答案最有帮助,所以我正在检查它。谢谢!
  • 我想我找到了真正的答案。我可以做一个 git clone -n​​o-checkout ,它将在 D2 目录中创建一个 repo,然后签入修改后的文件,不需要新的 repo 并且所有历史记录都被保留。
【解决方案2】:

据我了解:

  • D1 是一个 git 仓库

  • D2 只是一个文件夹,包含更新的文件(来自 D1)

如果您不再需要 D1 中的文件,是否只需将 D2 的全部内容复制到 D1 并提交/推送更改就足够了吗?

我不建议为 D2 创建新的存储库,因为那时您将看不到以前的更改。

在继续之前,我建议备份两个文件夹,以防万一!

【讨论】:

  • 网络和本地有多个备份。
【解决方案3】:

最好的方法(如果您自己工作)是在桌面上备份该存储库,然后将其删除,之后您可以安全地创建另一个存储库并将 D2 推送到新存储库中。虽然这可能很耗时,但您可以将文件从 D2 复制到您添加/修改的 D1,然后像什么都没发生一样继续进行,git 会将它们呈现为“添加”或修改(但当然,如果文件名相同) )。你有两个解决方案。 但请首先备份该存储库。

【讨论】:

  • 我有 3 个备份,两个异地。我很怕丢东西。
  • 你不是唯一一个。正如我所说,您可以将文件从 D2 覆盖到 D1(并添加您添加的文件),然后您就可以开始使用了。如果您同意我们的任何答案,尽管它们是相同的,您可以检查它们吗?谢谢。编辑:我的意思是他们中的任何一个。
  • 查看我在上面写的注释。不同的目录结构会成为问题,不是吗?
  • 嗯,你可以做的最简单的事情是创建另一个存储库,然后删除旧的。
  • 我最终创建了一个新存储库,但我保留了旧存储库的历史。我决定创建新的,因为我正在更改 IDE。
猜你喜欢
  • 2012-07-30
  • 2012-07-08
  • 2010-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-07
  • 2013-10-06
相关资源
最近更新 更多