Comment utiliser Git sur Android?
j'ai une application de bureau utilisant git pour la synchronisation. J'ai aussi une application android qui font la même chose que le bureau, mais je ne sais pas comment faire la synchronisation de la partie. Je n'ai trouvé aucune implémentation de git sur android. J'ai trouvé un jgit, mais son malaise documenté et je n'ai pas été en mesure de faire même un commit avec cela.
je pensais aux commandes à distance de mon serveur git à partir de mon application android, mais c'est vraiment une taquine pour moi. Pourriez-vous dites-moi si d'autres implémentations git qui peuvent être utilisées sur android existent? Si vous savez comment résoudre ça, dites-le-moi.
14 réponses
une autre option est D'utiliser L'ASE. Il semble qu'il y ait une implémentation purs python complète de git à https://github.com/jelmer/dulwich .
depuis que cette question a été posée, une application Android a été ajoutée sur le marché qui permet de consulter les git repos, appelé Agit . Il ne peut pas encore s'engager ou pousser, mais la fonctionnalité clone/fetch/pull est utile. L'autre problème est qu'une version de ConnectBot doit être installée avant Agit si vous voulez utiliser les clés SSH. Si vous avez déjà ConnectBot, désinstallez-le d'abord. Je ne l'a pas fait et a couru dans des problèmes.
si le périphérique est enraciné, vous pouvez aussi utiliser debootstrap ( ) de debian. http://wiki.debian.org/Debootstrap ) application pour créer une image debian/armel, la monter dans votre appareil android et la chrooter, vous avez aptitude ici pour que n'importe quel paquet disponible pour armel puisse être installé sur votre appareil (pour installer git: aptitude installer git). Regardez ici pour savoir comment installer debian pour votre android: http://lanrat.com/install-debian-on-android/
quelques autres solutions qui sont maintenant disponibles, assied Agit , depuis cette question a été la dernière réponse:
vous pouvez aussi essayer Git de poche: https://play.google.com/store/apps/details?id=com.aor.pocketgit
Pocket git prend en charge SSH (avec des clés privées et des passphrases) et HTTP, cloner, stage, unstage, commit, push et pull; crée, delete et merge branches; et il dispose également d'un visualiseur graphique log et peut afficher des diffs.
clause de non-responsabilité: je suis le développeur
je suggère de jeter un oeil à Gidder . Il s'agit de l'implémentation du serveur Git pour Android avec la gestion des utilisateurs et des dépôts, ainsi que la prise en charge des DNS dynamiques. Vous pouvez facilement stocker votre code dans votre appareil Android et accéder à l'aide d'une connexion WiFi.
mise à jour:
Commentaire en dessous de cette réponse par OP- (Nathan Osman)
malheureusement, j'ai été forcé de retirer l'application après quelques changements de politique récents sur la boutique Play qui ont exigé des éditeurs pour avoir leur adresse affichée sur la page de la boutique de l'application.
Réponse Originale
je viens (circa avril 2013) a publié une application sur le Play store nommé GitDroid . L'application vous permet de faire ce qui suit:
- clone dépôts distants
- tirer à partir de la télécommande et de fusionner les nouvelles révisions
- afficher les validations et parcourir les fichiers
l'application ne peut pas encore push to a remote ou make local commits - ceci est prévu pour une future mise à jour.
C'est comment j'allais le faire:
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 l'appareil android (avec L'aide du NDK) en faisant l'implémentation utiliser git (natif).
ensuite, pour L'application Android, vous codez une couche JNI sur le dessus pour qu'elle expose l'interface à Java.
la partie délicate serait d'avoir les différentes commandes git compilent pour Android: vous devrez réécrire les makefiles.
un grand nombre d'applications déjà existantes ont été publiées dans les réponses, mais les liens suivants pourraient être utiles pour ceux qui cherchent leur propre mise en œuvre:
-
il s'agit d'une implémentation pure C qui prétend être très portable. Et le projet décrit également comment compiler les sources pour la plate-forme android . Maintenant, ce qui doit être fait est d'écrire un JNI contraignant pour elle. Même un exécutable binaire serait suffisant dans certains cas.
-
comme alternative, si vous êtes purement intéressé par les opérations de lecture à partir d'un dépôt, ce protocole peut être implémenté via HTTP. Il existe également un protocole intelligent qui dépend de ssh et qui effectue des transferts différentiels.
-
utilisant seulement le paquet de base de ses sources. Toutes les dépendances
javax.*
et autres classes incompatibles / alien devront être remplacées par des alternatives android. Mais cela vaut la peine si une implémentation Java pure peut être portée sur android.
Try SGit , il peut commit & push sur SSH avec les touches pssphrase-less et il est disponible sur F-Droid . Il est construit sur le sommet de JGit. Il n'est pas parfait (encore) et l'implémentation de JGit n'est pas aussi bonne que git original, mais semble utilisable.
une autre option est CubeGit.
nous avons publié CubeGit sur Google Play Il ya quelques jours.
il s'agit d'une interface vers un binaire git compilé en croix et supporte également Local commits et push via SSH/http/https.
vous pouvez installer https://github.com/termux/termux-app @ https://play.google.com/store/apps/details?id=com.termux , il vous suffit d'ouvrir le terminal et de taper:
-
apt update
-
apt install git