我对此问题的意图是完成将我的eclipse项目迁移到Android Studio并保留所有文件历史记录。我什么时候开始使用eclipse项目的克隆,但遇到了以下问题。我重新开始使用eclipse repro的副本,而不是克隆,并设法得到我想要的(请参阅下面的答案)
我将我的eclipse项目迁移到android studio。为了保留git历史,我将现有的eclipse repo克隆到了temp空间/ tmp / git_rename(例如)
在克隆的复制品中,我做了以下事情:
我通过创建一些新的分支来做到这一点。在我做的时候承诺并将它们合并回主人。
我当时拥有的是一个git repo,其源文件位于迁移的android studio项目源文件的相同位置
然后我将这个.git目录复制到我的android studio目录的根目录
我认为这完成了我想要的大部分内容(我可以看到所有java和资源文件的历史记录)。
问题在于,由于我做了一个克隆,所有旧的分支只是对旧日食回购的引用,如下所示。我真的希望这是一个“standlone”存储库,所有旧的分支,提交本地。我还有一个问题,我有一个本地主人和一个远程主人。然后我会将其推送到某个远程备份。
我认为这应该相当容易,但我接近我想要的东西,我真的不想破坏任何东西。
有人可以给我一些指导,告诉我如何从我所在的位置(如下所示)转到一个包含本地所有分支和一位主人的单一仓库吗?
答案 0 :(得分:1)
如果你想做的就是让你的repo停止跟踪它的遥控器,你可以使用git remote rm [remotename]
删除对遥控器的引用。如果origin
是您唯一的遥控器,则在新的git repo中执行git remote rm origin
会删除对origin
的引用。
您可以阅读有关使用和操作遥控器here
的更多信息答案 1 :(得分:0)
我最后一次从头开始做了这件事。我将记录我所做的事情,希望它能帮助其他人找到一个好的方法将eclipse ADT项目迁移到Android Studio并维护所有git历史记录(这对我来说并不明显)。
这假设您已完成迁移向导并迁移了应用的Android Studio版本,但您现在也想要移除所有git历史记录。 如果你还没有那么做,那就相当紧张,你可以从找到的开发者页面上的说明开始here
完成迁移后,您将在Android Studio中获得源代码的副本,但没有git历史记录。这是我如何移动我的。
基本思想是创建一个.git目录,该目录具有所有现有历史记录,但结构与android studio使用的一样,然后将其复制到项目根目录。这是一个相当简单的过程,但我在这里写下了每一个血腥的细节。你可以跳过其中的一些步骤(比如制作新的分支),但这就是我所做的。
确保你已经完成了所有事情并指向你日食回购中的主人
将您现有的eclipse git repo复制(通过cp -rp,不 git clone)到临时区域。请注意,您正在复制整个仓库,所有文件,目录等,包括.git目录
转到临时区域并使用git确认一切都在那里,即没有待处理的更改
创建并切换到名为delete_things_not_needed_in_A_S
使用rm -r删除android studio中不存在的任何内容。对我来说,我留下了src,我的清单和.git目录(你可以选择性地复制我猜,而不是复制和删除)
使用git提交这些更改并将它们合并到master中,然后创建一个名为move_directories_to_match_as_structure的新分支。
现在进入临时区域并创建需要与Android Studio结构匹配的任何目录。例如在AS中,包根位于app / src / main / java vs eclipse中,它直接位于项目目录的根目录中。
接下来,使用mv,将您保存的目录保存到Android studio中将存在的位置。你应该得到的是你在eclipse repo中所拥有的目录的一小部分,但是与AS期望的目录相匹配。
删除所有"遗留下来"目录,例如原始src(您将其内容移动到另一个位置,但目录仍然存在)
做最后的检查,此时你应该只有包含你想要保留历史记录的文件和.git目录的目录,没有别的。
使用git,提交这些更改,将它们合并到master中,然后创建(并切换到)名为files_added_by_android_studio的最终新分支
使用cp -rp复制(这很重要)仅 .git目录到你的android studio项目根目录。请注意,您对迁移的android studio项目所做的唯一更改是复制.git目录。
使用我在下面显示的内容创建或更新Android项目目录根目录和app子目录中的.gitignore文件。
在你的android studio项目的根目录中,使用git gui(或git status)确认只有一只手满了新文件
提交并合并为主
启动android studio并启用版本控制集成(在主菜单栏下的VCS下)
应该这样做。这听起来比实际更复杂。基本上你是在复制现有的.git文件夹,修改它以便它能够在android工作室中看到它们发生的变化而不是它们在eclipse中发生的情况,然后将修改后的.git文件夹复制到你的android工作室项目中。 / p>
以下是我使用的两个.gitignore文件:
在项目根目录中。
.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
/build
/build