同期にgitを使用するデスクトップアプリケーションがあります。デスクトップと同じことを行うAndroidアプリケーションもありますが、その上で同期部分を実行する方法がわかりません。 Androidでのgitの実装は見つかりませんでした。 jgitを見つけましたが、文書化されていないので、コミットすることさえできませんでした。
私はAndroidアプリからgitサーバーへのリモートコマンドについて考えていましたが、これは本当に私にとっていじめです。 Androidで使用できる他のgit実装が存在するかどうか教えてください。それを解決する方法があれば、教えてください。
別のオプションはASEを使用しています。フル機能の純粋なpython gitの実装が https://github.com/jelmer/dulwich にあるようです。
この質問が最初に投稿されてから、Android Gitリポジトリをチェックアウトできるアプリが市場に追加されました。これは Agit と呼ばれます。まだコミットまたはプッシュできません。もう1つの問題は、SSHキーを使用する場合は、Agitの前に ConnectBotのパッチバージョン をインストールする必要があることです。ConnectBotが既にある場合は、アンインストールします。最初にこれをしなかったため、問題が発生しました。
デバイスがルート化されている場合、debianのdebootstrap( http://wiki.debian.org/Debootstrap )アプリケーションを使用してdebian/armelイメージを作成し、Androidデバイスとchroot、ここにaptitudeがありますので、armelで利用可能なパッケージをデバイスにインストールできます(gitのインストール:aptitude install git)。 http://lanrat.com/install-debian-on-Android/
Agit に加えて、現在利用可能な他のいくつかのソリューションは、この質問が最後に回答されたためです:
Bitbeaker と呼ばれるbitbucket用のgit&Mercurialクライアント
github からのgitアプリ
Android Java IDE [〜#〜] aide [〜#〜] にはgit機能もあるため、次からダウンロードできます。 gitディレクトリ、およびそのAndroidアプリが変更および実行されている場合。
Gidder をご覧になることをお勧めします。 Androidユーザーおよびリポジトリ管理を備え、ダイナミックDNSもサポートしています。Gitサーバーの実装です。コードをAndroid接続。
Pocket Gitを試すこともできます: https://play.google.com/store/apps/details?id=com.aor.pocketgit
Pocket GitはSSH(パスフレーズを使用しますが、秘密キーにはいくつかの問題があるようです)およびHTTP、クローン、ステージング、ステージング解除、コミット、プッシュおよびプルをサポートしています。ブランチの作成、削除、マージ。また、グラフィカルログビューアもあり、差分を表示できます。
免責事項:私は開発者です
インストールできる https://github.com/termux/termux-app @ https://play.google.com/store/apps/details?id=com.termux 、ターミナルを開いて入力するだけです:
apt update
apt install git
MGit はSGitの後継であり、私にとって非常にうまく機能しています。
更新:
コメント この答えの下に OP-(Nathan Osman)
残念ながら、パブリッシャーがアプリケーションのストアページに住所を表示する必要があるというPlayストアでの最近のポリシー変更の後、アプリケーションをプルするように強制されました。
元の回答
私はちょうど(2013年4月頃)Play Storeで GitDroid という名前のアプリを公開しました。このアプリケーションでは、次のことができます。
アプリはまだリモートにプッシュしたり、ローカルにコミットしたりすることはできません-これは今後のアップデートで計画されています。
多くの既存のアプリが回答に投稿されていますが、独自の実装をお探しの方には次のリンクが役立つかもしれません:
これは、移植性が高いと主張する純粋なC実装です。また、プロジェクトでは Androidプラットフォーム のソースをコンパイルする方法)についても説明します。今度は、JNIバインディングを記述する必要があります。実行可能バイナリでも場合によっては十分である。
別の方法として、リポジトリからの読み取り操作に純粋に関心がある場合は、このプロトコルをHTTP経由で実装できます。 sshに依存し、差分転送を行うスマートプロトコルもあります。
ソースからコアパッケージのみを使用します。全ての javax.*
依存関係およびその他の互換性のない/エイリアンのクラスは、Androidの代替物で置き換える必要があります。ただし、純粋なJavaの実装をアンドロイド。
これは私がそれをする方法です:
同期のニーズに合わせてインターフェイスを定義する必要があります。
実装でgit(ネイティブ)を使用することにより、デスクトップとAndroidデバイス(NDKの助けを借りて)の両方に対してCでこのインターフェイスを実装します。
次に、Androidアプリの場合、Javaにインターフェースを公開するようにJNIレイヤーを最上部にコーディングします。
トリッキーな部分は、異なるgitコマンドをAndroid用にコンパイルすることです。メイクファイルを書き換える必要があります。
もう1つのオプションはCubeGitです。
CubeGit on Google Play を数日前にリリースしました。
クロスコンパイルされたgitバイナリへのインターフェイスであり、local commitsおよびPushssh/http/https経由。
JGit- http://Eclipse.org/jgit/