Как использовать Git на Android?
У меня есть настольное приложение, используя git для синхронизации. У меня также есть приложение для android, которое делает то же самое, что и рабочий стол, но я не знаю, как сделать часть синхронизации на нем. Я не нашел никакой реализации git на android. Я нашел jgit, но его плохо документированы и я не смог сделать даже покончить с этим.
Я думал об удаленных командах на мой git-сервер из моего приложения для android, но это действительно дразнит меня. Не могли бы вы сказать мне, если любая другая реализация git, которая может быть использована на android, существует? Если у вас есть идея, как решить это, Подскажите пожалуйста.
14 ответов:
другой вариант-использование ASE. Кажется, есть полнофункциональная чистая реализация python git at https://github.com/jelmer/dulwich.
поскольку этот вопрос был впервые опубликован, на рынок было добавлено приложение для Android, которое может проверять git repos, называемое агит. Он еще не может совершить или нажать, но функция clone/fetch/pull полезна. Другой вопрос, что a исправлена версия ConnectBot необходимо установить перед Agit, если вы хотите использовать ключи SSH. Если у вас уже есть секунд, удалите его. Я этого не делал и столкнулся с проблемами.
Если устройство коренится, вы можете также использовать ядро в Debian ( http://wiki.debian.org/Debootstrap ) приложения создать файл debian/изображения Армель, смонтировать его в ваш Android устройства и сделать chroot в него, у вас есть способности вот так любой пакет доступен для Армель может быть установлен на вашем устройстве (для установки git: способность установить git). Смотрите здесь информацию об установке debian для вашего android:http://lanrat.com/install-debian-on-android/
некоторые другие решения, которые уже доступны, кроме агит, так как на этот вопрос был дан последний ответ:
вы также можете попробовать Pocket Git:https://play.google.com/store/apps/details?id=com.aor.pocketgit
Pocket Git поддерживает SSH (с закрытыми ключами и парольными фразами) и HTTP, клонирование, этап, unstage, фиксацию, push и pull; создание, удаление и слияние ветвей; а также имеет графический просмотрщик журналов и может отображать различия.
отказ от ответственности: я разработчик
Я бы предложил взглянуть на Gidder. Это реализация сервера Git для Android с управлением пользователями и репозиториями, а также поддержка динамического DNS. Вы можете легко хранить свой код в вашем устройстве Android и получить доступ с помощью WiFi-соединения.
обновление:
комментарий под этим ответом OP - (Натан Осман)
к сожалению, я был вынужден вытащить приложение после некоторых недавних изменений политики в Play Store, которые потребовали от издателей, чтобы их адрес отображался на странице магазина приложения.
Оригинальный Ответ
Я просто (около апреля 2013 года) опубликовано приложение на Play store с именем GitDroid. Приложение позволяет сделать следующее:
- клонировать удаленные репозитории
- вытащить из пульта ДУ и объединить новые версии
- просмотр коммитов и просмотр файлов
приложение не может нажать на удаленный или сделать локальные коммиты еще-это планируется для будущего обновления.
MGit является преемником SGit, и это очень хорошо работает для меня.
вот как я бы это сделал:
Ну вы, вероятно, хотите определить интерфейс для ваших потребностей синхронизации.
вы реализуете этот интерфейс в C для настольных и android устройств (с помощью NDK), сделав реализацию использовать git (родной).
затем для приложения Android вы кодируете слой JNI сверху, чтобы он предоставлял интерфейс Java.
сложная часть будет иметь различные команды git компиляции для Android: вам придется переписать makefiles.
в ответах было опубликовано много уже существующих приложений, но следующие ссылки могут быть полезны для тех, кто ищет свою собственную реализацию:
это чистая реализация C, которая претендует на высокую переносимость. И проект также описывает как скомпилировать исходники для платформы Android. Теперь то, что нужно сделать, это написать привязку JNI для него. Даже исполняемый двоичный файл будет в некоторых случаях достаточно.
в качестве альтернативы, если вы просто заинтересованы в операциях чтения из репозитория, этот протокол может быть реализован через HTTP. Существует также интеллектуальный протокол, который зависит от ssh и делает дифференциальные передачи.
используя только основной пакет из его источников. Все это
javax.*
зависимостей и однако другие несовместимые / чужеродные классы необходимо будет заменить альтернативами android. Но стоит усилий, если чистая реализация Java может быть перенесена на android.
еще один вариант-CubeGit.
мы выпустили CubeGit на Google Play несколько дней назад.
это интерфейс к кросс-скомпилированному двоичному файлу git, а также поддерживает локальные коммиты и push через ssh / http / https.
вы можете установить https://github.com/termux/termux-app @ https://play.google.com/store/apps/details?id=com.termux, тогда вам просто нужно открыть терминал и ввести:
apt update
apt install git
JGit - http://eclipse.org/jgit/