如何在 Android Studio 中正确使用 Git?

Posted

技术标签:

【中文标题】如何在 Android Studio 中正确使用 Git?【英文标题】:How to use Git correctly in Android Studio? 【发布时间】:2016-03-21 15:21:57 【问题描述】:

我知道这是 *** 上讨论最多的话题,但我就是不知道如何使这项工作发挥作用。我想:

    创建一个 android Studio 项目 用 git 签入项目 将项目推送到 bitbucket 将项目拉到另一台计算机上

这是我正在使用的 .gitignore(基本上是 Android Studio 创建的,我在其中删除了 *.iml 文件 - 因为它不起作用)

.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
/build
/captures

但不知何故,它就是行不通。无论我的 gitignore 文件是什么样的,Android Studio 都无法识别该项目。

那么实际的问题:如何将 Android Studio 项目推送到 git,以便我可以简单地将其拉入另一个客户端继续工作?

编辑:

以下是我做事的步骤,一步一步:

    在 Android Studio 中创建项目 GitTest 在 Bitbucket 上创建一个 git 存储库 在 Android Studio 中:选择“启用版本控制集成” - 选择“git” 浏览 gitignore 文件并将其更改为匹配 Mauker 的

    在“左侧项目”下选择“项目”,然后在 Git 下“添加”

    提交/推送更改(在进程中定义远程仓库)

此时,项目在 bitbucket 上。接下来是“导入项目”部分:

    打开安卓工作室 选择“从版本控制中签出项目” 从 Gradle 导入项目(建议使用默认等级包装器) 检测到未注册的 VCS 根目录 -> 添加根目录

项目加载,我得到某种 NullPointerException

【问题讨论】:

您遇到了什么具体问题?听起来您已经能够在一台计算机上推送 git 并在另一台计算机上将其拉下.. 为此编辑,伙计 我认为这真的是(我的)Windows 中的 Android Studio 问题......在下面的帮助下,我至少让它在 Mac 之间工作。 【参考方案1】:

在另一台计算机上,您可以尝试导入项目,而不是打开它。

实际上,您不必将项目特定文件提交到您的 git 存储库。 Android Studio 足够智能,可以从许多不同的来源导入项目。

使用 IntelliJ IDEA,您不仅可以从 从头开始,但也导入使用其他开发的现有项目 工具。最常见的场景之一是导入现有的 Android-Gradle 项目。不过也可以导入一个Maven、Eclipse 或 Flash Builder 项目,甚至从一堆 源文件。

就像这样:

And here's a nice and more detailed tutorial 了解如何在 Android Studio 上从源代码和其他地方导入项目。

对于您的.gitignore 文件,我强烈建议您使用gitignore.io 网站获取一个。

另外,如果您已经提交了不应该存在的文件,请检查 this question 并查看如何删除它们。

这是我在一个项目中使用的.gitignore 文件示例。

# Created by https://www.gitignore.io/api/android,osx,windows,linux,intellij,java

### Android ###
# Built application files
*.apk
*.ap_

# Files for the Dalvik VM
*.dex

# Java class files
*.class

# Generated files
bin/
gen/

# Gradle files
.gradle/
build/

# Local configuration file (sdk path, etc)
local.properties

# Proguard folder generated by Eclipse
proguard/

# Log Files
*.log

# Android Studio Navigation editor temp files
.navigation/

### Android Patch ###
gen-external-apklibs


### OSX ###
.DS_Store
.AppleDouble
.LSOverride

# Icon must end with two \r
Icon


# Thumbnails
._*

# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns

# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk


### Windows ###
# Windows image file caches
Thumbs.db
ehthumbs.db

# Folder config file
Desktop.ini

# Recycle Bin used on file shares
$RECYCLE.BIN/

# Windows Installer files
*.cab
*.msi
*.msm
*.msp

# Windows shortcuts
*.lnk


### Linux ###
*~

# KDE directory preferences
.directory

# Linux trash folder which might appear on any partition or disk
.Trash-*


### Intellij ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, phpStorm, AppCode, PyCharm, CLion, Android Studio

*.iml

## Directory-based project format:
.idea/
# if you remove the above rule, at least ignore the following:

# User-specific stuff:
# .idea/workspace.xml
# .idea/tasks.xml
# .idea/dictionaries

# Sensitive or high-churn files:
# .idea/dataSources.ids
# .idea/dataSources.xml
# .idea/sqlDataSources.xml
# .idea/dynamic.xml
# .idea/uiDesigner.xml

# Gradle:
# .idea/gradle.xml
# .idea/libraries

# Mongo Explorer plugin:
# .idea/mongoSettings.xml

## File-based project format:
*.ipr
*.iws

## Plugin-specific files:

# IntelliJ
/out/

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.ear

【讨论】:

这是一个非常全面的 git ignore 文件,你介意我在我的项目中使用它吗? 感谢您的详细说明。将尝试使用您的 gitignore 文件。 我们让它工作,从 Mac 推送,拉到 Mac。无法在我的 Windows 计算机上加载它(请参阅我的 OP 中的编辑),但我想我会停止尝试在 Windows 上使用 Android Studio :) 非常感谢您的帮助! 非常有用且通用的 git 忽略文件 在 Windows 上的“导入项目”成功了。在没有 Android Studio 将项目识别为受版本控制但想要添加我所有的源文件,因此它们已经存在于存储库中的情况下,我花了几个小时的挫败感。

以上是关于如何在 Android Studio 中正确使用 Git?的主要内容,如果未能解决你的问题,请参考以下文章

Android studio中正确引入so文件的方法

如何强制 Android Studio 生成具有开发人员正确名称的文档

Android studio中正确引入so文件的方法

Android studio中正确引入so文件的方法

如何在 Android Studio 中正确更改我现有的项目名称?

如何使用 Android Studio 在模块中添加风味?