如何在Android上使用Git?

时间:2010-04-23 18:33:49

标签: android git synchronization

我有一个使用git进行同步的桌面应用程序。我还有一个与桌面相同的android应用程序,但我不知道如何在其上执行同步部分。我还没有在android上找到任何git的实现。我找到了一个jgit,但它的记录不清楚,我甚至无法做到这一点。

我正在考虑从我的Android应用程序到我的git服务器的远程命令,但这对我来说真是一个挑逗。 你能告诉我是否存在可以在android上使用的任何其他git实现?如果你有任何想法如何解决,请告诉我。

15 个答案:

答案 0 :(得分:18)

自从这个问题首次发布以来,市面上已经添加了一个Android应用程序,可以查看名为Agit的Git回购。它无法提交或推送,但克隆/提取/拉取功能很有用。另一个问题是,如果要使用SSH密钥,则需要在Agit之前安装patched version of ConnectBot。如果您已经有ConnectBot,请先卸载它。我没有这样做并遇到了问题。

答案 1 :(得分:14)

另一种选择是使用ASE。在https://github.com/jelmer/dulwich似乎有一个功能齐全的纯python git实现。

答案 2 :(得分:11)

如果该设备已植根,您还可以使用debian的debootstrap(http://wiki.debian.org/Debootstrap)应用程序来创建debian / armel图像,将其安装在您的Android设备中并chroot到它,您有这方面的资质,所以任何可用的包对于armel可以安装在您的设备上(安装git:aptitude install git)。在这里查看有关如何为您的android安装debian的信息:http://lanrat.com/install-debian-on-android/

答案 3 :(得分:8)

现在提供的其他一些解决方案,旁边是Agit,因为这个问题是最后一个回答:

  • 一个git& bitbucket的mercurial客户端名为Bitbeaker

  • 来自github

  • 的git应用
  • Android Java IDE AIDE也有git功能,因此您可以从git目录下载,如果它的Android应用程序修改并运行它。

答案 4 :(得分:6)

我建议你看看Gidder。它是Android的Git服务器实现,具有用户和存储库管理,并且还支持动态DNS。您可以轻松地将代码存储在Android设备中,并使用WiFi连接进行访问。

答案 5 :(得分:6)

你也可以试试Pocket Git:https://play.google.com/store/apps/details?id=com.aor.pocketgit

Pocket Git支持SSH(带密码,但私钥似乎有一些问题)和HTTP,克隆,阶段,非阶段,提交,推送和拉动;创建,删除和合并分支;它还有一个图形日志查看器,可以显示差异。

免责声明:我是开发者

答案 6 :(得分:5)

MGit是SGit的继任者,对我来说效果非常好。

答案 7 :(得分:5)

您可以安装https://github.com/termux/termux-app @ https://play.google.com/store/apps/details?id=com.termux,然后只需打开终端并输入:

  1. apt update
  2. apt install git

enter image description here

答案 8 :(得分:4)

<强>更新

Comment

在此答案下方

OP- (Nathan Osman)

  

遗憾的是,在Play商店最近的一些政策更改后,我被迫提取应用程序,要求发布商将其地址显示在应用程序的商店页面上。


原始答案

我只是(大约在2013年4月)在名为GitDroid的Play商店发布了一个应用。该应用程序允许您执行以下操作:

  • 克隆远程存储库
  • 从遥控器拉出并合并新版本
  • 查看提交和浏览文件

Overview Tab of GitDroid

该应用无法推送到远程或进行本地提交 - 这是计划在未来更新。

答案 9 :(得分:4)

答案中已经发布了许多现有的应用程序,但以下链接可能对那些寻找自己实现的人有用:

  1. libgit2

    这是一个声称高度可移植的纯C实现。该项目还描述了how to compile the sources for android platform。现在需要做的是为它编写JNI绑定。在某些情况下,即使是可执行的二进制文件就足够了。

  2. HTTP (dumb) protocol

    作为替代方案,如果一个人对存储库中的读取操作纯粹感兴趣,则可以通过HTTP实现此协议。还有一个智能协议,它依赖于ssh并进行差分传输。

  3. JGit Core Sources

    仅使用其来源的核心包。所有javax.*依赖项和其他不兼容/外来类都需要用android替代品替换。但是,如果可以将纯Java实现移植到android。

  4. ,那值得付出努力

答案 10 :(得分:2)

我就是这样做的:

您可能希望为同步需求定义接口。

您可以在C中为桌面和Android设备实现此接口(在NDK的帮助下),使实现使用git(native)。

然后,对于Android应用程序,您在顶部编写JNI层代码,以便将接口公开给Java。

棘手的部分是为Android编译不同的git命令:你必须重写makefile。

答案 11 :(得分:2)

尝试SGit,它可以提交&amp;使用无pssphrase-keys键推送SSH,它可以在F-Droid上使用。它建立在JGit之上。它并不完美(但)并且JGit实现不如原始Git,但看起来可用。

答案 12 :(得分:1)

另一个选项是CubeGit。

我们几天前发布了CubeGit on Google Play

它是交叉编译的git二进制文件的接口,还支持本地提交推送,通过ssh / http / https。

答案 13 :(得分:1)

您可以使用Termux在android上安装git。只需从Play商店安装并运行命令:

pkg install git

参考:https://mvprepublic.com/blog/2020/04/08/how-to-run-git-on-android-devices/

答案 14 :(得分:0)