¿Cómo usar Git en Android?

Tengo una aplicación de escritorio que utiliza git para la sincronización. También tengo una aplicación de Android que hacen lo mismo que el escritorio, pero no sé cómo hacer la parte de sincronización en él. No he encontrado ninguna implementación de git en android. He encontrado un jgit, pero su mal documentado y no pude hacer ni siquiera una cometer con eso.

Estaba pensando en comandos remotos a mi servidor git desde mi aplicación para Android, pero esto es realmente una burla para mí. ¿Podría decirme si alguna otra implementación git que se puede utilizar en android existe? Si usted tiene alguna idea de cómo resolver eso, por favor dígame.

Otra opción es usar ASE. Parece que hay una implementación python pura y completa de git en https://github.com/jelmer/dulwich .

Desde que se publicó por primera vez esta pregunta, se ha agregado una aplicación para Android al mercado que puede realizar depósitos Git de compra, denominada Agit . No se puede confirmar ni empujar todavía, pero la funcionalidad clone / fetch / pull es útil. El otro problema es que una versión remendada de ConnectBot necesita ser instalada antes de Agit si desea usar claves SSH. Si ya tiene ConnectBot, desinstálelo primero. No hice esto y me encontré con problemas.

Si el dispositivo está enraizado, también puedes usar la aplicación debian debootstrap ( http://wiki.debian.org/Debootstrap ) para crear una imagen debian / armel, montarla en tu dispositivo androide y chroot, tienes aptitude aquí Cualquier paquete disponible para armel puede instalarse en su dispositivo (para instalar git: aptitude install git). Busque información sobre cómo instalar debian para su android: http://lanrat.com/install-debian-on-android/

Algunas otras soluciones que están ahora disponibles, Agit más bien , ya que esta última pregunta fue contestada:

  • Un cliente git & mercurial para bitbucket llamado Bitbeaker

  • Una aplicación git de github

  • El Android IDE Java AIDE también tiene la funcionalidad git, por lo que se puede descargar desde un directorio git y si es una aplicación de Android modificar y ejecutar aswell.

También puedes probar Pocket Git: https://play.google.com/store/apps/details?id=com.aor.pocketgit

Pocket Git soporta SSH (con claves privadas y frases secretas) y HTTP, clonación, escenario, desestabilización, confirmación, empuje y extracción; Crear, eliminar y fusionar ramas; Y también tiene un visor de registro gráfico y puede mostrar diffs.

Descargo de responsabilidad: Soy el desarrollador

Yo sugeriría que echar un vistazo a Gidder . Es la implementación del servidor Git para Android con administración de usuarios y repositorios y también admite DNS dinámico. Puede almacenar fácilmente el código en su dispositivo Android y acceder a él mediante una conexión WiFi.

Actualizar:

Comentario debajo de esta respuesta por OP- (Nathan Osman)

Por desgracia, me vi obligado a retirar la aplicación después de algunos cambios de política recientes en Play Store que exigían que los editores tuvieran su dirección en la página de la tienda de la aplicación.


Respuesta Original

Acabo de (alrededor de abril de 2013) publicar una aplicación en la tienda de Play llamada GitDroid . La aplicación le permite hacer lo siguiente:

  • Clonar repositorios remotos
  • Tire del mando a distancia y fusione las nuevas revisiones
  • Ver compromisos y examinar archivos

Ficha general de GitDroid

La aplicación no puede empujar a un control remoto o realizar compromisos locales aún – esto está previsto para una futura actualización.

MGit es el sucesor de SGit, y funciona muy bien para mí.

Así es como lo haría:

Bueno, es probable que desee definir una interfaz para sus necesidades de sincronización.

Implementar esta interfaz en C para dispositivos de escritorio y Android (con la ayuda del NDK) haciendo que la implementación use git (nativo).

Luego, para la aplicación de Android, codifica una capa de JNI en la parte superior para que expone la interfaz a Java.

La parte difícil sería tener los diferentes comandos de git compilados para Android: tendrás que reescribir makefiles.

Un montón de aplicaciones ya existentes se han publicado en las respuestas, pero los siguientes enlaces podrían ser útiles para aquellos que buscan su propia implementación:

  1. Libgit2

    Esta es una implementación de C pura que pretende ser altamente portátil. Y el proyecto también describe cómo compilar las fuentes para la plataforma android . Ahora lo que hay que hacer es escribir un enlace JNI para ello. Incluso un binario ejecutable sería suficiente en algunos casos.

  2. Protocolo HTTP (tonto)

    Como alternativa, si uno está puramente interesado en las operaciones de lectura desde un repositorio, este protocolo puede implementarse a través de HTTP. También hay un protocolo inteligente que depende de ssh y hace transferencias diferenciales.

  3. Fuentes principales de JGit

    Utilizando sólo el paquete básico de sus fuentes. Todas las dependencias de javax.* Y otras clases incompatibles / alienígenas necesitarían ser reemplazadas por alternativas de Android. Pero vale la pena el esfuerzo si una implementación de Java puro puede ser portada a android.

Intente SGit , él puede cometer y empujar sobre SSH con las llaves pssphrase-less y está disponible en F-Droid . Está construido encima de JGit. No es perfecto (todavía) y la implementación de JGit no es tan buena como Git original, pero se ve utilizable.

Una opción más es CubeGit.

Hemos lanzado CubeGit en Google Play hace unos días.

Es una interfaz para un compilador cruzado git binario y también soporta commits locales y empuje a través de ssh / http / https.

  • Buscando información sobre el Administrador de sincronización de Android
  • ¿Qué es una buena implementación en la actualización de elementos que cambian mucho en RecyclerView (intercambio) y la retroalimentación inmediata de los usuarios?
  • ¿Cómo notificar a la actividad de llamada cuando SyncAdapter ha finalizado?
  • Android sync / descargar marco
  • Bases de datos de sincronización Mysql SQLite
  • Persistencia de datos de usuario de servicios en línea para "visualización sin conexión" en aplicaciones de Android
  • Cómo sincronizar contactos de teléfono en gmail en android mediante programación utilizando google contactos api
  • Cómo habilitar la sincronización de la cuenta personalizada en android?
  • Up-Sync y Down-Sync en Android?
  • Android java.lang.IllegalMonitorStateException: objeto no bloqueado por hilo antes de esperar ()
  • Prácticas recomendadas para sincronizar una base de datos SQL con un servidor remoto REST en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.