Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Since there is a pure Java implementation of basic Git features called JGit, which also has a couple of heavy-duty users (Gerrit), I can't help to wonder: why hasn't someone implemented a basic Git client for Android yet? Anyone know any reason which would make this impossible (apart from time)?

share|improve this question

closed as primarily opinion-based by MichaelT, gnat, GlenH7, Dan Pichelman, Kilian Foth Sep 24 '13 at 9:02

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

3  
I've used ConnectBot to ssh into my Linux server and do git/mercurial related tasks. Also, there is a web-based client called cloud9 IDE (cloud9ide.com) which may work from the Android browser. It can connect to your public github repositories and provides editor/debug functionality for a few languages. –  Jim Schubert Mar 13 '11 at 18:16
1  
To those people offering "answers" below of the form "why would anyone want Git on a phone anyway?", one valid response to them now is Sparkleshare. –  Kevin Buzzard Apr 18 '13 at 10:20
    
There is an offical GitHub app now. play.google.com/store/apps/… –  user1762507 Feb 11 at 4:28
add comment

8 Answers

I've just released Agit - a Git client for Android - onto the Android Market:

https://market.android.com/details?id=com.madgag.agit

It uses JGit for it's heavy lifting, but that doesn't mean there weren't plenty of exciting technical challenges to overcome. Some of them were to do with JGit, which originally didn't run well on Android devices - I contributed several patches relating to mem-usage to the JGit community which they were good enough to accept or improve upon. SSH support was also problematic, as I didn't want to re-implement a key-management system when ConnectBot already had such a good one. In the end I made a small patch of ConnectBot, defining a small ssh-agent-like interface which Agit could bind to - meaning that Agit doesn't need to actually manage or even store SSH keys itself, just kindly ask ConnectBot to sign it's cryptographic challenges for it - I think it's pretty cool ;-)

It took me a year to the first release, and was awesome fun to work on, but believe me, it took some effort!

P.S. Although Agit is a paid app, it's also open source under the GPL v3 licence – you can clone the source from here and build it yourself.

share|improve this answer
1  
No longer free. –  user14671 Sep 1 '11 at 11:04
9  
@al-everett that depends what you mean by 'free' :) Agit's been free as in speech (ie open-source) since launch - and it's price in the Android Market hasn't changed. –  Roberto Tyley Sep 2 '11 at 9:31
1  
Is there a possibility to add commit / push? I what's stopping it? I wouldn't mind even using command line on android for this, if you do not have a gui yet. –  Ivo Feb 8 '12 at 9:01
    
Please add commit and pushing! –  trusktr Jul 24 '12 at 23:12
add comment

My first thought would be not that it is not possible, but that it would not be that useful. A tablet or a smart phone is not the type of device I think of when I am planning on programing.

I want lots of screen space. I want flexibility about how I interact with the code. I want be able to dig down and really interact with all the piece I need. I don't think those are things you can get unless you are working with a real computer.

If you are just trying to browse the source to refresh your memory of how something worked, there are a number of implementations that present a web interface to viewing the repository and source.

All that being said, I would bet money that one will be implemented at some point. If it's one thing programmers are not good at, it's understanding that just because you can doesn't mean you should.

share|improve this answer
5  
Apart from the fact that this is programmers SE, it's in general not about code. My use case would be keeping my TODO lists in Git and sync them over Git to my phone. Hardly a hard task for current 800+ MHz generation and vastly useful for people like me who don't want to use something like DropBox, but instead a versioned system for their data. –  Nikolai Prokoschenko Mar 13 '11 at 16:18
3  
+1. First thing I thought when I saw this question was, "why in the world would someone try to write code on a phone?!?" –  Mason Wheeler Mar 15 '11 at 14:59
7  
This is so annoying, just like asking "Why dont you just blabla" or "Why do you need this blabla". This is not helping or contributing to the discussion. It's a mere expression of your disinterest in this topic, and therefore more about you than about this question. - And I just wasted 3min of my time for this... –  sleeplessnerd Jul 23 '11 at 19:48
2  
-1 for lack off generality. Git is not just a programming tool. I use it for writing (for instance, my thesis) and being able to add notes as I think of them, and when I'm not near my computer, would be very useful. –  naught101 Jul 15 '12 at 1:27
2  
-1: One of the worst traits programmers can exhibit is rewriting the customers requirements to suit their own view of the world. 25 up votes for one of the worst answers on Programmers I have ever seen? WTF..... –  mattnz Apr 3 '13 at 4:21
show 5 more comments

There is a terminal-suite called Terminal IDE in Google Play, that has a git console-client built into it. It includes a telnet- and a ssh-server and vim setup with the toolchain to comfortably edit and build Android Apps directly on the device.

A minor drawback with it is, you have to use unresolved IP-adreses for it on unrooted devices (due to missing /etc/hosts), and I myself didnt manage to get the ssh-client working with my github-repo. But I didnt look further into this, I bet there is a solution, as I didnt try very hard.

share|improve this answer
    
+1 for terminal IDE –  user1207217 Feb 22 '13 at 23:36
add comment

Check out Terminal IDE:

  • Terminal IDE is a command line java / android dev kit that runs on the device itself.
  • Using a correctly configured vim, bash and busybox, in a custom terminal + custom keyboard environment.

It has a command line git with full pull/push/commit/branch/etc.

Also worth checking out AIDE:

  • AIDE is an integrated development environment (IDE) for developing real Android Apps directly on Android devices.
  • AIDE supports the full edit-compile-run cycle: write code with the feature rich editor offering advanced features like code completion, real-time error checking, refactoring and smart code navigation, and run your App with a single click.
share|improve this answer
1  
I added some references here based on what I believe you was talking about rknepp please let me know if I was mislead on any of them since your answer was very short on them. –  Oeufcoque Penteano Apr 11 '12 at 16:45
    
+1 for terminal IDE –  user1207217 Feb 22 '13 at 23:35
add comment

There's http://www.jgit.org/ — go ahead and make an app based on this. You can also compile 'normal' git as a native lib and write a UI for it.

Git has a large number of options. On a mobile device, you probably need a rather limited subset.

To synchronize a todo list, you could use other existing apps, or dropbox.

share|improve this answer
add comment

I have just finished publishing GitDroid on the Google Play store. At this point, GitDroid provides the ability to clone, view, and pull from a remote Git repository.

Now to answer your questions:

"...why hasn't someone implemented a basic Git client for Android yet? Anyone know any reason which would make this impossible (apart from time)?"

It's certainly not an impossible task. Nor was it a time-consuming task - the first version (the one currently for sale) took literally two weeks to develop. However, I didn't use JGit.

Instead, I downloaded the NDK and actually built Git and its dependencies for ARMv6. Then it was simply a matter of wrapping the Git commands with calls to exec() and parsing the output.

share|improve this answer
add comment

It is a brilliant idea. But, Git as such might be less useful than, say, git integrated into the filesystem of the device. The user interface could be given simple controls such as roll back to a specific time, take snapshots, start/stop git, etc.

I don't use Android or any other smart phones, so I don't know if such a function is available. Mac OS X's Time Machine works somewhat similar, in that, it hides the version control tool or such thing that is behind it and gives a simple user interface where it can be enabled/disabled, go back and forward in time, etc. I haven't looked into the details, perhaps the most recent edition of iOS has such a feature.

share|improve this answer
add comment

Writing a git client for Android tablets is on my TODO list.

I think the reason there was no git client for Android yet is because phones provide a horrible coding experience with their limited screen space.

Now with multiple Android tablets on the market the game has changed and I am trying to bring some mobile coding possibilities to these devices. The first phase is already live on the market in the form of AndEdit HD, a text editor that provides basic file editing and syntax highlighting.

Next steps are source control and build tool integration

share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.