如何在Android上使用Git?


73

我有一个使用git进行同步的桌面应用程序。我还有一个Android应用程序,其功能与桌面相同,但我不知道如何在其上进行同步。我还没有在android上找到git的任何实现。我找到了一个jgit,但是它的记录不完整,因此我什至无法提交。

我当时在考虑从我的android应用程序向我的git服务器发送远程命令,但这对我来说真的很有趣。你能告诉我是否有其他可以在android上使用的git实现?如果您有解决办法的任何想法,请告诉我。


对不起,没有时间回答;终端IDE呢?看到lox-o-drome.blogspot.de/2012/08/...
扬-GLX

@YAK可悲的是,似乎不再维护Terminal IDE。自从我升级到棒棒糖以来,至少它不起作用。
2015年

@brianary在游戏商店中的说明中,巨大的“ **与Android 5.0 LOLLIPOP **当前不兼容”表明它仍在维护中,并且可能会在某天到达修复程序
jan-glx 2015年

恐怕@YAK对我来说是隐藏的。必须单击进入完整的描述才能看到它。巨大=全部大写,足够公平。
2015年

Answers:


14

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


但是如何在ASE上安装dulwich?ASE仅用于脚本,它不能用于运行实际的应用程序,至少我还没有尝试过,但是找不到模块distutils.core...。–
Dave

1
来自code.google.com/p/android-scripting/wiki/FAQ:可以安装其他Python模块吗?是。只要将它们简单地添加到/ sdcard / ase / extras / python中,只要它们不依赖于ASE不附带的任何C Python模块,许多纯Python模块就可以工作。当然,您可以交叉编译自己的C Python模块。但是,那不是为了胆小的人。Python鸡蛋将需要手动安装。也就是说,您将需要手动将Python模块复制到其适当的位置。ASE不支持easy_install。
rascalking 2010年

17

自从首次发布此问题以来,已经向市场添加了一个可签出Git仓库的Android应用,称为Agit。它尚不能提交或推送,但是克隆/获取/拉功能很有用。另一个问题是,如果要使用SSH密钥,则需要在Agit之前安装补丁版本的ConnectBot。如果您已经拥有ConnectBot,请先将其卸载。我没有这样做,但遇到了问题。


9
嗨,我是地理信息技术的作者-我只是想更何况还有对地理信息技术SSH设置说明,在这里-自那时以来,这样它给你更多的指导,如果它不能找到一个已经安装了SSH我还提高了应用程序经纪人:)
罗伯托·泰利

2
链接到Agit无效。
guettli

这是源代码的链接:github.com/rtyley/agit,它在F-Droid上也可用。最近一次更新是在6年前。
Huy Ngo

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/


8

自上次回答此问题以来,Agit旁边有一些其他可用的解决方案:

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

  • 来自github的git应用

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


6
AIDE也支持推,但仅在高级版本中。Github和Bitbeaker应用程序是只读的AFAICT。
贝尼·切尔尼亚夫斯基-帕斯金


7

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

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

免责声明:我是开发人员


Pocket Git使用Android文件系统中的二进制文件并将其推送到git repo?它可以与gist.github.com上的单个文件库一起使用吗?
Lambder 2015年

它适用于要点(仅经过测试的克隆,更改,登台,落实和推送)。不知道我是否理解您的第一个问题。您可以克隆任何存储库,更改任何文件(pocket git不提供任何编辑器,但您可以使用其他应用程序打开文件),暂存,提交并推回存储库。
安德烈·雷斯蒂沃

我刚买了您的应用程序并做了一些测试。一切正常。我唯一希望的是通过指向设备上的现有文件来创建新文件。无论如何,通过使用ES文件资源管理器将文件复制到git repo文件夹并使用您的PocketGit推送它,都实现了我想要的功能。很棒的应用程序。谢谢。
Lambder 2015年

我买了它,但是不幸的是,当尝试使用私钥进行克隆(在其他客户端中也可以使用)时,它会产生一个错误,并且我不想输入密码。开发者无回应。我的建议是使用两天的Google退款窗口来检查此应用是否满足您的需求。
亚当·米勒基普

6

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


2
看起来不错,但是似乎没有任何提交更改的方法...这可能吗?如果没有,那么能够推动似乎有点无意义...
naught101

@antoniy我可以在git repo的sd卡上选择一个文件夹吗?
库尔希德·阿拉姆


5

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

  1. libgit2

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

  2. HTTP(哑)协议

    或者,如果您仅对存储库中的读取操作感兴趣,则可以通过HTTP来实现此协议。还有一个智能协议,该协议依赖ssh并进行差分传输。

  3. JGit核心资源

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


4

更新:

OP-(Nathan Osman)的答案下方发表评论

不幸的是,在Play商店最近进行了一些政策更改之后,我被迫撤消了该应用程序,该更改要求发行商在其应用程序的商店页面上显示其地址。


原始答案

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

  • 克隆远程存储库
  • 从远程提取并合并新修订
  • 查看提交并浏览文件

GitDroid的概述标签

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


2
这里的“未来”指的是将来仍然存在的东西,何时可以期望实施推动?
jan-glx

1
@Maximus不幸的是,在Play商店最近进行了一些政策更改之后,我被迫拉出了该应用程序,该更改要求发行商在其应用程序的商店页面上显示其地址。
内森·奥斯曼

坦率地说,这项要求是愚蠢的-许多个人开发人员不会公开其住所地址,以供所有人查看!
迈克尔

F-Droid呢?
艾伦·西雅克


2

这就是我要做的:

您可能想为您的同步需求定义一个接口。

通过使实现使用git(本地),您可以在C中为台式机和android设备实现此接口(在NDK的帮助下)。

然后,对于Android应用程序,您需要在顶部编写一个JNI层,以便它向Java公开接口。

棘手的部分是要为Android编译不同的git命令:您将不得不重写makefile。


1

更新:由于Android系统内部的更改以及缺少时间/更新动机,CubeGit已被删除。请选择一种方法。


还有一个选择就是 CubeGit。

几天前,我们已在Google Play上发布了CubeGit

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


应用程式无法在Playstore上使用。
Pinaki Mondal


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.