web-dev-qa-db-fra.com

Comment utiliser Git sur Android?

J'ai une application de bureau utilisant Git pour la synchronisation. J'ai aussi une application Android qui fait la même chose que le bureau, mais je ne sais pas comment faire la synchronisation. Je n'ai trouvé aucune implémentation de git sur Android. J'ai trouvé un jgit, mais son mal documenté et je ne pouvais même pas faire un commit avec ça.

Je pensais aux commandes à distance adressées à mon serveur git à partir de mon Android), mais il s’agit vraiment d’un taquin pour moi. Pourriez-vous me dire si une autre implémentation de Git pouvant être utilisée sur Android existe? Si vous avez une idée de la façon de résoudre ce problème, dites-le moi.

72
Dave

Une autre option utilise ASE. Il semble y avoir une implémentation pure python) complète de git à https://github.com/jelmer/dulwich .

14
rascalking

Depuis que cette question a été postée pour la première fois, une Android application a été ajoutée sur le marché. Elle permet de commander les mises en pension Git, appelées Agit . Elle ne peut pas encore être validée ni diffusée. mais la fonctionnalité clone/fetch/pull est utile. L'autre problème est qu'un version corrigée de ConnectBot doit être installé avant Agit si vous souhaitez utiliser des clés SSH. Si vous possédez déjà ConnectBot, désinstallez-le. Tout d'abord, je ne l'ai pas fait et j'ai rencontré des problèmes.

18
polymathica

Si le périphérique est enraciné, vous pouvez également utiliser l’application debootstrap ( http://wiki.debian.org/Debootstrap ) de debian pour créer une image debian/armel, montez-la dans votre Android device et chroot, vous avez aptitude ici, donc tout paquet disponible pour armel peut être installé sur votre appareil (pour installer git: aptitude install git). Regardez ici pour savoir comment installer debian sur votre Android: http://lanrat.com/install-debian-on-Android/

11
emerino

Quelques autres solutions qui sont maintenant disponibles, outre Agit , depuis la dernière réponse à cette question:

  • Un client git & Mercurial pour bitbucket appelé Bitbeaker

  • Une application git de github

  • Le Android Java IDE [~ # ~] aide [~ # ~] a également la fonctionnalité git, vous pouvez donc le télécharger depuis un répertoire git et, s’il s’agit d’une application Android, le modifier et le lancer également.

8
knowledge_is_power

Je suggère de jeter un oeil à Gidder . C’est l’implémentation du serveur Git pour Android avec la gestion des utilisateurs et des référentiels, ainsi que le support DNS dynamique. Vous pouvez facilement stocker votre code dans votre appareil Android et y accéder à l'aide d'un réseau WiFi connexion.

6
antoniy

Vous pouvez également essayer Pocket Git: https://play.google.com/store/apps/details?id=com.aor.pocketgit

Pocket Git supporte SSH (avec des mots de passe, mais les clés privées semblent avoir quelques problèmes) et HTTP, clonage, étape, décomposition, commit, Push et pull; créer, supprimer et fusionner des branches; et il a également une visionneuse graphique de journal et peut montrer des diffs.

Disclaimer: je suis le développeur

6
André Restivo

Vous pouvez installer https://github.com/termux/termux-app @ https://play.google.com/store/apps/details?id=com.termux , il vous suffit ensuite d'ouvrir le terminal et de taper:

  1. apt update
  2. apt install git

enter image description here

6
user

MGit est le successeur de SGit, et cela fonctionne très bien pour moi.

5
smartwjw

Mise à jour:

commentaire sous cette réponse par OP- (Nathan Osman)

malheureusement, j'ai dû extraire l'application après des modifications récentes de la politique sur le Play Store qui obligeaient les éditeurs à afficher leur adresse sur la page de magasin de l'application.


Réponse originale

Je viens de (vers avril 2013) a publié une application sur le Play Store nommée GitDroid . L'application vous permet de faire ce qui suit:

  • cloner des référentiels distants
  • tirer de la télécommande et fusionner les nouvelles révisions
  • voir les commits et parcourir les fichiers

Overview Tab of GitDroid

L'application ne peut pas encore pousser vers une télécommande ou faire des commits locaux - cela est prévu pour une future mise à jour.

4
Nathan Osman

Un grand nombre d'applications déjà existantes ont été postées dans les réponses, mais les liens suivants pourraient être utiles à ceux qui recherchent leur propre implémentation:

  1. libgit2

    Ceci est une implémentation en C pur qui prétend être très portable. Et le projet décrit également comment compiler les sources pour Android . Il ne reste plus qu'à écrire une liaison JNI. Même un fichier binaire exécutable être suffisant dans certains cas.

  2. HTTP (dumb) protocol

    En guise d'alternative, si vous êtes purement intéressé par les opérations de lecture à partir d'un référentiel, ce protocole peut être implémenté via HTTP. Il existe également un protocole intelligent qui dépend de ssh et effectue des transferts différentiels.

  3. sources principales de JGit

    En utilisant uniquement le package de base à partir de ses sources. Tous les javax.* Les dépendances et autres classes incompatibles/extraterrestres devront être remplacées par des alternatives Android. Cependant, cela en vaut la peine si une implémentation pure Java peut être portée à Android.

4
S.D.

Voici comment je le ferais:

Eh bien, vous voudrez probablement définir une interface pour vos besoins de synchronisation.

Vous implémentez cette interface en C pour le bureau et le périphérique Android (à l'aide du NDK) en faisant en sorte que l'implémentation utilise git (natif).

Ensuite, pour l'application Android, vous codez une couche JNI en haut de manière à exposer l'interface à Java.

La difficulté serait de compiler les différentes commandes git pour Android: vous devrez réécrire des makefiles.

2
Gregory Pakosz

Essayez SGit , il peut valider & Push sur SSH avec des clés sans pspSrase et il est disponible sur F-Droid . Il est construit sur JGit. Ce n'est pas encore parfait et l'implémentation de JGit n'est pas aussi bonne que celle de Git d'origine, mais semble utilisable.

2
Josef Kufner

Une autre option est CubeGit.

Nous avons publié CubeGit sur Google Play il y a quelques jours.

C'est une interface vers un binaire git compilé de manière croisée et supporte également les commits locaux et Push via ssh/http/https.

1
CubeWorks
0
tianon