AndroidStudio没有将MainActivity.java提交给Github

时间:2016-06-15 01:17:54

标签: java android git android-studio github

Git似乎正在跟踪java文件夹,但我无法对特定文件MainActivity.java进行更改。我得到一个"没有为提交而进行的更改" 差异显示了变化,但我无法提交。

另外,我无法进入Github的文件夹。

Project structure Commit error

Github structure 该文件夹无法点击。

修改:当我在命令行中执行git status时,我

user:JustJava juil$ git status
HEAD detached at 93ea9a1
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)
  (commit or discard the untracked or modified content in submodules)

        modified:   app/src/main/java/com/example/android/justjava (modified content)

no changes added to commit (use "git add" and/or "git commit -a")

编辑2:我已经检查了最新的提交,但有些人已经建议,但仍然会出现分离头错误。

Current git log

编辑3:我尝试添加文件本身w / git add但是出现了目录是子模块的错误。

JustJava juil$ git add app/src/main/java/com/example/android/justjava/MainActivity.java
fatal: Pathspec 'app/src/main/java/com/example/android/justjava/MainActivity.java' is in submodule 'app/src/main/java/com/example/android/justjava'

我尝试运行git submodule status并收到错误

fatal: no submodule mapping found in .gitmodules for path 'app/src/main/java/com/example/android/justjava'

我尝试删除子模块中的.git,但同样的错误不断弹出。

3 个答案:

答案 0 :(得分:0)

要使用Android Studio界面更正此问题,请尝试以下操作:

  1. 制作已更改文件的备份副本,以防此方法无法正确合并您的更改。
  2. 在版本控制窗格中,选择Log标签。它会显示一个提交列表。
  3. 最高提交应该是最新提交。右键单击它并在上下文菜单中选择Checkout Revision
  4. 如果出现对话框,请选择Smart Checkout。这会将您的更改与所选提交合并。
  5. 您的HEAD现在应该被附加,所以您现在可以正常提交。

答案 1 :(得分:0)

分离HEAD时,意味着您执行的命令行相当于:

git checkout <UUID of previous commit>

创建的灰色文件夹称为子模块,当您在另一个git存储库中初始化git存储库时会发生这种情况。我建议删除JustJava/app/src/main/java/com/example/android/justjava中的.git文件夹。

使用git through terminal,请按照以下步骤操作:

  1. 备份其他文件夹中的所有代码

  2. **删除JustJava / app / src / main / java / com / example / android / justjava / .git“

  3. 结帐主人或您当前的分行(默认:主人)

    为了结账主人,通过终端(linux或mac)或git bash(如果你在Windows上)转到git项目所在的文件夹,然后执行:

    git checkout master
    
  4. 将备份代码与当前代码进行比较并进行所需的更改(如果有)
  5. 提交新代码

答案 2 :(得分:0)

由于justjava文件夹被证明是一个子模块,在超级目录中,我根据@fusiongate的建议调用了git rm -rf --cached justjava

这适用于允许添加和提交文件,但此文件的提交历史记录丢失。