No se pueden enviar confirmaciones a un repository remoto – GitHub

Tengo un proyecto de Android en el que estaba trabajando en Eclipse. Creé una count para mí en github y envié código dentro del proyecto al repository remoto en línea usando el cliente GitHub para Mac. Posteriormente, hice un par de confirmaciones menores para el código y todo salió bien.

Ahora el código ha sufrido algunos cambios significativos y cuando trato de comprometerme con el cliente Mac, aparece el siguiente post de error en la synchronization:
Sync Failed: Please commit all your changes before syncing.

Para evitar esto, intenté lo siguiente:
1. Intenté usar git push origin/master desde la línea de command. Esto resultó en project/info/refs not found: did you run git update-server-info on the server?
2. Comprobé si el nombre del repository, la location, etc. eran correctos y lo eran.

Mis preguntas):
1. Hay una gran cantidad de files .class que aparecen en la sección de Cambios. ¿Por qué aparecen dado que los files .class están incluidos en .gitignore ? Ahora que han aparecido, ¿es necesario seleccionarlos y comprometerlos también?
2. ¿Cuál es el significado del post de error anterior y cómo me deshago de él?

EDIT 1:
Después de los siguientes commands:
1. git ls-tree -r master | grep .class git ls-tree -r master | grep .class : esto mostró que los files .class también se agregaron al repository.
2. git rm **/*.class para eliminar todos los files .class del repository.
3. git commit -m "remove class files
4. git push origin master resultados git push origin master en:

 fatal: https://github.com/user/project.git/info/refs not found: did you run git update-server-info on the server? 

Además, ejecutar el git status en la línea de command muestra la siguiente línea:

 # On branch master # Your branch is ahead of 'origin/master' by 16 commits. # 

¿Es esto algo preocupante?

He pasado por muchos hilos sobre este tema y he echado un vistazo a cosas como SSH-keygen, pero no creo que esa sea la solución a mi problema. Soy un novato en git y solo he usado cvs antes, por lo que, por favor, simplifique sus respuestas, si es posible.

Mi file .gitignore :

 # built application files *.apk *.ap_ # files for the dex VM *.dex # Java class files *.class # generated files bin/ gen/ # Local configuration file (sdk path, etc) local.properties # Eclipse project files .classpath .project # Proguard folder generated by Eclipse proguard/ # Intellij project files *.iml *.ipr *.iws .idea/ *.class *.class *.class *.jar *.class *.class bin/dexedLibs/slf4j-android-1.6.1-RC1-e5ffa87f4686586f2e03d9069f131ba3.jar *.class 

Es posible que haya cometido ya los files .class en el repository. En este caso, git seguirá rastreando incluso si coloca * .class en el file .gitignore. Ejecute git ls-tree -r master | grep .class git ls-tree -r master | grep .class . Si eso le da algún resultado, usted ha cometido files .class. Si es así, intente ejecutar git rm **/*.class y comprometa el cambio.

Se supone que no debes ejecutar git push origin/master para especificar un control remoto y luego (opcionalmente) una bifurcación. Ahora git intentará analizar origin/master como un control remoto. Use en su lugar el git push origin master (use un espacio que no sea /). origin/master es una twig que, de todos modos, no deberías cambiarte.

Además, tienes * .class varias veces en tu .gitignore. Múltiples ocurrencias no cambiarán el comportamiento de git.

Primero debe enviar las confirmaciones a su repository local y LUEGO enviar las confirmaciones a la remota. Esto le permite realizar fusiones muy fáciles con el repository remoto, ya que cada confirmación tiene una identificación única de SHA que se usa para indicar dónde se encuentra su repository en relación con el repository remoto.

Haz lo siguiente:

 git add . git commit -m "your commit message" git push origin master (NOT git push origin/master) 

EDITAR

¿Por casualidad cambiaste el nombre del repository github? Esta pregunta TAN debería arrojar algo de luz.

'git commit. 'comprometerá todos tus cambios.

Tal vez puedas intentarlo … (No estoy seguro, solo una idea)

El problema fue que GitHub el cliente Mac de GitHub con una identificación personal. Esta identificación personal no fue registrada como queueboradora en el proyecto. Agregando mi count personal como queueborador (una fea solución) resolvió el problema. Pude comunicar los cambios en el repository.

Otras sugerencias que encontré útiles:
– Eliminar files .class del repository.
Para comprobar si se estaban siguiendo los files .class : git ls-tree -r master | grep .class git ls-tree -r master | grep .class
Para eliminarlos del repository y confirmar: git rm **/*.class seguido de git commit -m "your message goes here"
Para enviar todos los cambios: git push origin master .

Para poder usar git con múltiples counts, encontré esta count aquí para ser muy útil.