Ich habe eine Desktop-Anwendung, die Git für die Synchronisation verwendet. Ich habe auch eine Android-Anwendung, die das Gleiche wie der Desktop tut, aber ich weiß nicht, wie ich den Synchronisationsteil darauf machen soll. Ich habe keine Implementierung von Git auf Android gefunden. Ich habe ein JGIT gefunden, aber es ist nicht gut dokumentiert und ich konnte nicht einmal ein Commit damit machen.
Ich habe über Remote-Befehle für meinen Git-Server von meiner Android-App nachgedacht, aber das ist wirklich ein Scherz für mich. Können Sie mir sagen, ob es eine andere Git-Implementierung gibt, die auf Android verwendet werden kann? Wenn Sie eine Idee haben, wie Sie das lösen können, sagen Sie es mir bitte.
android
git
synchronization
Dave
quelle
quelle
Antworten:
Eine andere Option ist die Verwendung von ASE. Unter https://github.com/jelmer/dulwich scheint es eine voll funktionsfähige reine Python-Implementierung von git zu geben .
quelle
Seit diese Frage zum ersten Mal veröffentlicht wurde, wurde dem Markt eine Android-App namens Agit hinzugefügt, die Git-Repos auschecken kann . Es kann noch nicht festgeschrieben oder gepusht werden, aber die Klon- / Abruf- / Pull-Funktion ist nützlich. Das andere Problem ist, dass eine gepatchte Version von ConnectBot vor Agit installiert werden muss, wenn Sie SSH-Schlüssel verwenden möchten. Wenn Sie ConnectBot bereits haben, deinstallieren Sie es zuerst. Ich habe das nicht getan und bin auf Probleme gestoßen.
quelle
Wenn das Gerät gerootet ist, können Sie auch die Debootstrap- Anwendung ( http://wiki.debian.org/Debootstrap ) von debian verwenden , um ein Debian / Armel-Image zu erstellen, es in Ihr Android-Gerät zu mounten und darauf zu chrooten Jedes für armel verfügbare Paket kann auf Ihrem Gerät installiert werden (um git zu installieren: aptitude install git). Hier finden Sie Informationen zur Installation von Debian für Ihr Android: http://lanrat.com/install-debian-on-android/
quelle
Einige andere Lösungen, die jetzt verfügbar sind, neben Agit , seit diese Frage zuletzt beantwortet wurde:
Ein Git & Mercurial Client für Bitbucket namens Bitbeaker
Eine Git-App von Github
Die Android Java IDE AIDE verfügt auch über Git-Funktionen, sodass Sie sie aus einem Git-Verzeichnis herunterladen und, wenn es sich um eine Android-App handelt, ändern und auch ausführen können.
quelle
Sie können https://github.com/termux/termux-app @ https://play.google.com/store/apps/details?id=com.termux installieren . Dann müssen Sie nur das Terminal öffnen und Folgendes eingeben:
apt update
apt install git
quelle
Sie können auch Pocket Git ausprobieren: https://play.google.com/store/apps/details?id=com.aor.pocketgit
Pocket Git unterstützt SSH (mit Passphrasen, aber private Schlüssel scheinen einige Probleme zu haben) und HTTP, Klonen, Stage, Unstage, Commit, Push und Pull. Zweige erstellen, löschen und zusammenführen; und es hat auch einen grafischen Protokoll-Viewer und kann Unterschiede anzeigen.
Haftungsausschluss: Ich bin der Entwickler
quelle
Ich würde vorschlagen, einen Blick auf Gidder zu werfen . Es ist eine Git-Server-Implementierung für Android mit Benutzer- und Repository-Verwaltung und unterstützt auch dynamisches DNS. Sie können Ihren Code einfach auf Ihrem Android-Gerät speichern und über eine WiFi-Verbindung darauf zugreifen.
quelle
MGit ist der Nachfolger von SGit und es funktioniert sehr gut für mich.
quelle
In den Antworten wurden viele bereits vorhandene Apps veröffentlicht. Die folgenden Links können jedoch für diejenigen hilfreich sein, die nach einer eigenen Implementierung suchen:
libgit2
Dies ist eine reine C-Implementierung, die behauptet, sehr portabel zu sein. Das Projekt beschreibt auch, wie die Quellen für die Android-Plattform kompiliert werden . Jetzt muss eine JNI-Bindung dafür geschrieben werden. In einigen Fällen würde sogar eine ausführbare Binärdatei ausreichen.
HTTP (dumm) Protokoll
Alternativ kann dieses Protokoll über HTTP implementiert werden, wenn Sie nur an Lesevorgängen aus einem Repository interessiert sind. Es gibt auch ein intelligentes Protokoll, das von ssh abhängt und differenzielle Übertragungen durchführt.
JGit-Kernquellen
Verwenden Sie nur das Kernpaket aus seinen Quellen. Alle
javax.*
Abhängigkeiten und andere inkompatible / fremde Klassen müssen jedoch durch Android-Alternativen ersetzt werden. Aber die Mühe lohnt sich, wenn eine reine Java-Implementierung auf Android portiert werden kann.quelle
Aktualisieren:
Kommentar unter dieser Antwort von OP- (Nathan Osman)
Ursprüngliche Antwort
Ich habe gerade (ca. April 2013) eine App im Play Store namens GitDroid veröffentlicht . Mit der Anwendung können Sie Folgendes tun:
Die App kann noch nicht auf eine Fernbedienung übertragen oder lokale Commits vornehmen - dies ist für ein zukünftiges Update geplant.
quelle
Probieren Sie SGit aus , es kann SSH mit pssphrasenlosen Schlüsseln festschreiben und übertragen und ist auf F-Droid verfügbar . Es basiert auf JGit. Es ist (noch) nicht perfekt und die JGit-Implementierung ist nicht so gut wie die ursprüngliche Git, sieht aber brauchbar aus.
quelle
So würde ich es machen:
Nun, Sie möchten wahrscheinlich eine Schnittstelle für Ihre Synchronisationsanforderungen definieren.
Sie implementieren diese Schnittstelle in C sowohl für Desktop- als auch für Android-Geräte (mithilfe des NDK), indem Sie für die Implementierung git (native) verwenden.
Anschließend codieren Sie für die Android-App eine JNI-Ebene darüber, sodass die Schnittstelle für Java verfügbar gemacht wird.
Der schwierige Teil wäre, die verschiedenen Git-Befehle für Android kompilieren zu lassen: Sie müssen Makefiles neu schreiben.
quelle
Update: CubeGit wurde aufgrund von Änderungen im Android-System und fehlender Zeit / Anreize zum Update entfernt. Bitte wählen Sie eine der Alternativen.
Eine weitere Option
heißtwar CubeGit.Wir haben
CubeGit voreinigen Tagenauf Google Play veröffentlicht.Es ist eine Schnittstelle zu einer übergreifend kompilierten Git-Binärdatei und unterstützt auch lokale Commits und Push über ssh / http / https.
quelle
Sie können Git auf Android mit Termux installieren. Installieren Sie einfach aus dem Play Store und führen Sie den folgenden Befehl aus:
pkg install git
Referenz: https://mvprepublic.com/blog/2020/04/08/how-to-run-git-on-android-devices/
quelle
JGit - http://eclipse.org/jgit/
quelle