AndroidStudio no está comprometiendo MainActivity.java a Github

Git parece estar rastreando la carpeta java, pero no puedo confirmar los cambios en el file específico MainActivity.java . Obtengo un "Cambios no realizados para la confirmación". La diferencia muestra los cambios, pero no puedo confirmarlo.

Además, no puedo entrar a la carpeta en Github.

Estructura del proyecto Error cometido

Estructura Github Esa carpeta no se puede hacer clic.

Editar: Cuando hago git status en la línea de command, obtengo

 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") 

Editar 2: he comprobado la última confirmación, como algunos han sugerido, pero aún recibo el error principal separado.

Registro de git actual

Edición 3: Intenté agregar el file w / git add pero recibí un error de que el directory es un submodule.

 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' 

Intenté ejecutar el git submodule status y obtuve el error

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

Traté de eliminar .git en el submodule, pero el mismo error sigue apareciendo.

Para corregir esto utilizando solo la interfaz de Android Studio, intente lo siguiente:

  1. Haga una copy de security de sus files modificados, en caso de que este método no combine sus cambios correctamente.
  2. En el panel de control de la versión, select la pestaña de Log . Le mostrará una list de compromisos.
  3. El compromiso superior debe ser el más nuevo. Haga clic con el button derecho y select Checkout Revision en el menu contextual.
  4. Si aparece un cuadro de dialog, select Smart Checkout . Esto fusionará sus cambios con la confirmación seleccionada.
  5. Su CABEZA ahora debe estar conectada, por lo que puede comprometerse normalmente ahora.

Cuando su HEAD está separada, significa que usted hizo el equivalente de línea de command de:

 git checkout <UUID of previous commit> 

La carpeta gris que se creó se llama submodule, sucede cuando inicializa un repository git dentro de otro repository git. Sugeriría eliminar la carpeta .git dentro de JustJava/app/src/main/java/com/example/android/justjava .

Usando git a través del terminal, sigue estos pasos:

  1. Copia de security de todo el código en una carpeta diferente

  2. ** Eliminar JustJava / app / src / main / java / com / example / android / justjava / .git "

  3. Salida master o la twig actual en la que se encuentra (pnetworkingeterminado: master)

    Para verificar el maestro, vaya a la carpeta donde está el proyecto git a través de la terminal (Linux o Mac) o git bash (si está en Windows), y luego haga lo siguiente:

     git checkout master 
  4. Comparar el código de copy de security con el código actual y realizar los cambios que desee (si corresponde)
  5. Confirmar nuevo código

Como la carpeta justjava resultó ser un submodule, en el super directory, llamé a git rm -rf --cached justjava como lo sugiere @fusiongate

Esto funciona porque permite agregar y confirmar el file, pero se pierde el historial de confirmación en este file.