web-dev-qa-db-ja.com

AndroidでGitを使用する方法は?

同期にgitを使用するデスクトップアプリケーションがあります。デスクトップと同じことを行うAndroidアプリケーションもありますが、その上で同期部分を実行する方法がわかりません。 Androidでのgitの実装は見つかりませんでした。 jgitを見つけましたが、文書化されていないので、コミットすることさえできませんでした。

私はAndroidアプリからgitサーバーへのリモートコマンドについて考えていましたが、これは本当に私にとっていじめです。 Androidで使用できる他のgit実装が存在するかどうか教えてください。それを解決する方法があれば、教えてください。

72
Dave

別のオプションはASEを使用しています。フル機能の純粋なpython gitの実装が https://github.com/jelmer/dulwich にあるようです。

14
rascalking

この質問が最初に投稿されてから、Android Gitリポジトリをチェックアウトできるアプリが市場に追加されました。これは Agit と呼ばれます。まだコミットまたはプッシュできません。もう1つの問題は、SSHキーを使用する場合は、Agitの前に ConnectBotのパッチバージョン をインストールする必要があることです。ConnectBotが既にある場合は、アンインストールします。最初にこれをしなかったため、問題が発生しました。

18
polymathica

デバイスがルート化されている場合、debianのdebootstrap( http://wiki.debian.org/Debootstrap )アプリケーションを使用してdebian/armelイメージを作成し、Androidデバイスとchroot、ここにaptitudeがありますので、armelで利用可能なパッケージをデバイスにインストールできます(gitのインストール:aptitude install git)。 http://lanrat.com/install-debian-on-Android/

11
emerino

Agit に加えて、現在利用可能な他のいくつかのソリューションは、この質問が最後に回答されたためです:

  • Bitbeaker と呼ばれるbitbucket用のgit&Mercurialクライアント

  • github からのgitアプリ

  • Android Java IDE [〜#〜] aide [〜#〜] にはgit機能もあるため、次からダウンロードできます。 gitディレクトリ、およびそのAndroidアプリが変更および実行されている場合。

8

Gidder をご覧になることをお勧めします。 Androidユーザーおよびリポジトリ管理を備え、ダイナミックDNSもサポートしています。Gitサーバーの実装です。コードをAndroid接続。

6
antoniy

Pocket Gitを試すこともできます: https://play.google.com/store/apps/details?id=com.aor.pocketgit

Pocket GitはSSH(パスフレーズを使用しますが、秘密キーにはいくつかの問題があるようです)およびHTTP、クローン、ステージング、ステージング解除、コミット、プッシュおよびプルをサポートしています。ブランチの作成、削除、マージ。また、グラフィカルログビューアもあり、差分を表示できます。

免責事項:私は開発者です

6
André Restivo

インストールできる 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

6
user

MGit はSGitの後継であり、私にとって非常にうまく機能しています。

5
smartwjw

更新:

コメント この答えの下に OP-(Nathan Osman)

残念ながら、パブリッシャーがアプリケーションのストアページに住所を表示する必要があるというPlayストアでの最近のポリシー変更の後、アプリケーションをプルするように強制されました。


元の回答

私はちょうど(2013年4月頃)Play Storeで GitDroid という名前のアプリを公開しました。このアプリケーションでは、次のことができます。

  • リモートリポジトリのクローン
  • リモートからプルし、新しいリビジョンをマージします
  • コミットの表示とファイルの閲覧

Overview Tab of GitDroid

アプリはまだリモートにプッシュしたり、ローカルにコミットしたりすることはできません-これは今後のアップデートで計画されています。

4
Nathan Osman

多くの既存のアプリが回答に投稿されていますが、独自の実装をお探しの方には次のリンクが役立つかもしれません:

  1. libgit2

    これは、移植性が高いと主張する純粋なC実装です。また、プロジェクトでは Androidプラットフォーム のソースをコンパイルする方法)についても説明します。今度は、JNIバインディングを記述する必要があります。実行可能バイナリでも場合によっては十分である。

  2. HTTP(ダム)プロトコル

    別の方法として、リポジトリからの読み取り操作に純粋に関心がある場合は、このプロトコルをHTTP経由で実装できます。 sshに依存し、差分転送を行うスマートプロトコルもあります。

  3. JGit Core Sources

    ソースからコアパッケージのみを使用します。全ての javax.*依存関係およびその他の互換性のない/エイリアンのクラスは、Androidの代替物で置き換える必要があります。ただし、純粋なJavaの実装をアンドロイド。

4
S.D.

これは私がそれをする方法です:

同期のニーズに合わせてインターフェイスを定義する必要があります。

実装でgit(ネイティブ)を使用することにより、デスクトップとAndroidデバイス(NDKの助けを借りて)の両方に対してCでこのインターフェイスを実装します。

次に、Androidアプリの場合、Javaにインターフェースを公開するようにJNIレイヤーを最上部にコーディングします。

トリッキーな部分は、異なるgitコマンドをAndroid用にコンパイルすることです。メイクファイルを書き換える必要があります。

2
Gregory Pakosz

SGit を試してください。pssphrase-lessキーを使用してSSHでコミットおよびプッシュでき、 F-Droid で利用できます。 JGitの上に構築されています。 (まだ)完全ではなく、JGitの実装は元のGitほど優れていませんが、使いやすいようです。

2
Josef Kufner

もう1つのオプションはCubeGitです。

CubeGit on Google Play を数日前にリリースしました。

クロスコンパイルされたgitバイナリへのインターフェイスであり、local commitsおよびPushssh/http/https経由。

1
CubeWorks
0
tianon