2016-06-15 82 views
1

Git似乎在跟踪java文件夹,但我无法提交对特定文件MainActivity.java的更改。我得到一个“更改没有提交提交” 差异显示更改,但我不能提交它。AndroidStudio没有将MainActivity.java提交给Github

此外,我无法进入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,但同样的错误不断弹出。

+0

你处于分离状态。在命令行中运行'git status'并发布结果 –

+0

我已经将git status的输出放在问题中,但它仍然不能解释为什么我无法访问Github上的文件。 – juil

+0

尝试:'git stash','git checkout master','git stash pop'。然后,您可以提交您的更改并继续在master上工作 –

回答

0

要纠正此只使用了Android Studio界面,请尝试以下操作:

  1. 让你修改过的文件进行备份,以防万一这种方法并不正确合并更改。
  2. 在版本控制窗格中,选择Log选项卡。它会显示提交列表。
  3. 最上面的提交应该是最新的提交。右键单击它并在上下文菜单中选择Checkout Revision
  4. 如果出现对话框,请选择Smart Checkout。这会将您的更改与选定的提交合并。
  5. 你的HEAD现在应该被连接,所以你现在可以正常提交。
+0

我试过了,它没有做任何事情。我用我当前的git日志的截图更新了这个问题。 – juil

+0

它看起来像MainActivity.java从未实际添加到git。试着做'git add app/src/main/java/com/example/android/justjava/MainActivity.java' – Fusiongate

+0

试过了但得到了一个子模块错误。在问题中更新。 – juil

0

当你的头分离,就意味着你做的命令行等价的:

git checkout <UUID of previous commit> 

已创建被称为子模块灰色的文件夹,当你初始化另一个混帐内一个Git仓库它发生库。我建议删除JustJava/app/src/main/java/com/example/android/justjava中的.git文件夹。

通过终端使用GIT,执行以下步骤:

  1. 备份所有的代码在不同的文件夹

  2. **删除JustJava /应用/ SRC /主/ JAVA/COM /例如/安卓/ justjava/git的”

  3. 结帐出的主或当前分支你(默认:主)

    为了结帐高手,转到文件夹,您Git项目是通过终端(Linux或Mac)或git bash(如果你在Windows上),然后执行:

    git checkout master 
    
  4. 已备份的比较了当前的代码代码,让你想要的变化(如果有的话)
  5. 提交新代码
+0

我试过检查出主人,但仍然得到了与我最新编辑中对我的问题所述的相同错误。 – juil

0

由于justjava文件夹竟然是在超级目录中,我称为git rm -rf --cached justjava,正如@fusiongate建议的那样

这样做的目的是允许添加和提交文件,但是此文件上的提交历史记录丢失。