git-使用Gradle build将远程git代码签出到Android Studio导入的项目中

git-使用Gradle build将远程git代码签出到Android Studio导入的项目中,android,git,android-studio,gradle,android-gradle-plugin,Android,Git,Android Studio,Gradle,Android Gradle Plugin,我已经把一些代码导入了Android Studio 它现在有了一个渐变版本(以前没有)。我现在需要做一个git pull。然而,由于目录结构发生了轻微的变化,我不知道如何继续进行这项工作 app/src/main下的Android Studio目录结构与原始目录类似,例如: Android Studio [main]$ ls AndroidManifest.xml assets java res [main]$ ls java/ LICENSE.txt R

我已经把一些代码导入了Android Studio

它现在有了一个渐变版本(以前没有)。我现在需要做一个git pull。然而,由于目录结构发生了轻微的变化,我不知道如何继续进行这项工作

app/src/main
下的Android Studio目录结构与原始目录类似,例如:

Android Studio

[main]$ ls
AndroidManifest.xml assets          java            res
[main]$ ls java/
LICENSE.txt README.md   com
原件

$ ls
AndroidManifest.xml README.md       res
LICENSE.txt     assets          src
$ ls src/
com
com
下,除了反向域路径稍有不同(例如
com/original
com/new
)之外,它非常相似。i、 似乎唯一重要的文件是位于不同位置的
AndroidManifest.xml
。但是,如果我执行一个
git pull
,它将把
AndroidManifest.xml
放在另一个地方,并在
com/new
上签出
com/original


有什么建议吗?

您需要首先重新组织文件,以匹配目标(即当前的渐变结构)

  • 克隆您的回购协议(在其他任何地方,而不是在您的Android项目中)
  • 执行相关的
    git mv
    ,然后提交
  • 添加您的最新版本:

    cd /path/to/local/clone
    git --work-tree=/path/to/gradle/project add .
    git commit -m "Import local dev"
    git push
    
(这将消除您可能在本地完成的任何差异)


然后,你可以回到你的Android gradle项目,做一个git pull

如果情况是这样的,这是一个旧的Eclipse代码库,你正在迁移到Android Studio中,并且你仍将继续使用相同的存储库,我建议在Android Studio中“手动”设置该项目。换句话说,不要使用自动导入将文件(源、资源、AndroidManifest等)移动到默认位置

通过定义它们在gradle构建脚本“SourceSet”定义中的位置,将所有内容保留在原始位置。例如:

android {   
 sourceSets {
            main {
                manifest.srcFile 'AndroidManifest.xml'
                java.srcDirs = ['src']
                resources.srcDirs = ['src']
                res.srcDirs = ['res']
                assets.srcDirs = ['assets']  
            }
...

}

这可能是一个更简单的选择。

VonC的答案看起来很好。你试过了吗?需要解释一下吗?