如何在Android上使用Git?

Dav*_*ave 72 git android synchronization

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

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

小智 17

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

  • 嗨,我是Agit的作者 - 我只是想提一下有关于Agit的SSH设置说明[这里](https://github.com/rtyley/agit/wiki/SSH) - 我也改进了应用程序从那时起,如果它找不到已安装的SSH代理,它会给你更多的指导:) (9认同)
  • Agit 的链接已失效。 (2认同)

ras*_*ing 14

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


eme*_*ino 11

如果设备是root用户,你也可以使用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/


kno*_*wer 8

除了Agit之外,其他一些解决方案现已推出,因为这个问题最后得到了解答:

  • bitbucket的git和mercurial客户端叫做Bitbeaker

  • 来自github的git app

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

  • AIDE也支持推送,但仅限于高级版本.Github和Bitbeaker应用程序是只读的AFAICT. (6认同)

And*_*ivo 7

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

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

免责声明:我是开发人员


小智 6

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

  • 这看起来很棒,但它似乎没有任何改变的方法......这可能吗?如果没有,那么推动......似乎有点无意义 (2认同)

sma*_*wjw 6

MGitSGit的继任者,对我来说效果很好.

  • 不过,这是一个有很多错误的应用程序。 (2认同)

use*_*ser 6

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

  1. apt update
  2. apt install git

在此处输入图片说明


S.D*_*.D. 5

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

  1. libgit2

    这是一个纯 C 实现,声称具有高度的可移植性。并且该项目还描述了如何编译android平台的源代码。现在需要做的是为它编写一个 JNI 绑定。在某些情况下,即使是可执行的二进制文件也足够了。

  2. HTTP(哑)协议

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

  3. JGit 核心资源

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