Android에서 Git을 사용하는 방법?
동기화를 위해 git을 사용하는 데스크톱 응용 프로그램이 있습니다. 데스크톱과 동일한 기능을 수행하는 Android 애플리케이션도 있지만 동기화 부분을 수행하는 방법을 모르겠습니다. Android에서 git 구현을 찾지 못했습니다. 나는 jgit을 찾았지만 문서화가 좋지 않아 커밋조차 할 수 없었습니다.
내 안드로이드 앱에서 내 자식 서버에 대한 원격 명령에 대해 생각하고 있었지만 이것은 실제로 나를 괴롭히는 것입니다. 안드로이드에서 사용할 수있는 다른 git 구현이 있는지 알려주시겠습니까? 그 문제를 해결하는 방법을 알고 있으면 알려주세요.
또 다른 옵션은 ASE를 사용하는 것입니다. https://github.com/jelmer/dulwich 에 git의 완전한 기능을 갖춘 순수 파이썬 구현이있는 것 같습니다 .
이 질문이 처음 게시 된 이후로 Git 리포지토리를 확인할 수있는 Agit 이라는 Android 앱이 마켓에 추가되었습니다 . 아직 커밋하거나 푸시 할 수 없지만 복제 / 가져 오기 / 가져 오기 기능이 유용합니다. 다른 문제는 SSH 키를 사용하려면 Agit 전에 패치 된 버전의 ConnectBot 을 설치해야한다는 것입니다. ConnectBot이 이미있는 경우 먼저 제거하십시오. 나는 이것을하지 않았고 문제가 발생했습니다.
장치가 루팅 된 경우 데비안의 debootstrap ( http://wiki.debian.org/Debootstrap ) 응용 프로그램을 사용하여 debian / armel 이미지를 만들고 Android 장치에 마운트하고 chroot 할 수도 있습니다. armel에 사용할 수있는 모든 패키지는 장치에 설치할 수 있습니다 (git 설치 : aptitude install git). Android 용 데비안을 설치하는 방법에 대한 정보는 여기를 참조하십시오. http://lanrat.com/install-debian-on-android/
이 질문에 대한 마지막 답변 이후 Agit 외에 현재 사용 가능한 다른 솔루션이 있습니다 .
Bitbeaker 라는 bitbucket 용 git & mercurial 클라이언트
github 의 git 앱
Android Java IDE AIDE 에는 git 기능도 있으므로 git 디렉토리에서 다운로드하고 Android 앱이 수정하고 실행할 수도 있습니다.
나는 Gidder를 살펴볼 것을 제안합니다 . 사용자 및 저장소 관리가 포함 된 Android 용 Git 서버 구현이며 동적 DNS도 지원합니다. Android 장치에 코드를 쉽게 저장하고 WiFi 연결을 사용하여 액세스 할 수 있습니다.
https://github.com/termux/termux-app @ https://play.google.com/store/apps/details?id=com.termux를 설치 한 다음 터미널을 열고 다음을 입력하면됩니다.
apt update
apt install git
Pocket Git을 사용해 볼 수도 있습니다 : https://play.google.com/store/apps/details?id=com.aor.pocketgit
Pocket Git은 SSH (패스 프레이즈 포함)와 HTTP, 복제, 스테이징, 언 스테이지, 커밋, 푸시 및 풀을 지원합니다. 분기 생성, 삭제 및 병합 또한 그래픽 로그 뷰어가 있으며 차이점을 표시 할 수 있습니다.
면책 조항 : 나는 개발자입니다
MGit 은 SGit 의 후속 제품이며 저에게 매우 잘 작동합니다.
이미 존재하는 많은 앱이 답변에 게시되었지만 다음 링크는 자체 구현을 찾는 사람들에게 유용 할 수 있습니다.
-
이것은 이식성이 높다고 주장하는 순수한 C 구현입니다. 또한이 프로젝트는 Android 플랫폼 용 소스를 컴파일하는 방법 도 설명 합니다 . 이제 수행해야 할 작업은 JNI 바인딩을 작성하는 것입니다. 어떤 경우에는 실행 가능한 바이너리만으로도 충분합니다.
-
대안으로, 리포지토리에서 읽기 작업에만 관심이 있다면이 프로토콜을 HTTP를 통해 구현할 수 있습니다. ssh에 의존하고 차등 전송을 수행하는 스마트 프로토콜도 있습니다.
-
소스의 핵심 패키지 만 사용합니다. 모든
javax.*
종속성 및 기타 호환되지 않는 / 외계 클래스는 Android 대안으로 교체해야합니다. 그러나 순수한 Java 구현을 Android로 이식 할 수 있다면 그만한 가치가 있습니다.
최신 정보:
OP- (Nathan Osman) 의이 답변 밑에 댓글
안타깝게도 게시자가 애플리케이션의 스토어 페이지에 주소를 표시하도록 요구하는 Play 스토어의 최근 정책 변경 후 애플리케이션을 강제로 가져 왔습니다.
원래 답변
저는 (2013 년 4 월경) Play 스토어에 GitDroid 라는 앱을 게시했습니다 . 이 응용 프로그램을 사용하면 다음을 수행 할 수 있습니다.
- 원격 저장소 복제
- 원격에서 가져와 새 수정본 병합
- 커밋보기 및 파일 찾아보기
앱은 아직 원격으로 푸시하거나 로컬 커밋을 수행 할 수 없습니다. 이는 향후 업데이트를 위해 계획되어 있습니다.
이것이 내가 할 방법입니다.
동기화 요구에 맞는 인터페이스를 정의하고 싶을 것입니다.
구현에서 git (네이티브)를 사용하여 데스크톱 및 Android 기기 (NDK의 도움으로) 모두에 대해 C로이 인터페이스를 구현합니다.
그런 다음 Android 앱의 경우 인터페이스를 Java에 노출하도록 맨 위에 JNI 계층을 코딩합니다.
까다로운 부분은 Android 용으로 다른 git 명령을 컴파일하는 것입니다. makefile을 다시 작성해야합니다.
SGit을 사용 해보세요. pssphrase 가없는 키로 SSH를 통해 커밋 및 푸시 할 수 있으며 F-Droid 에서 사용할 수 있습니다 . JGit 위에 구축되었습니다. 아직 완벽하지는 않으며 JGit 구현은 원래 Git만큼 좋지는 않지만 유용 해 보입니다.
또 하나의 옵션은 CubeGit입니다.
며칠 전 Google Play 에서 CubeGit을 출시 했습니다 .
교차 컴파일 된 git 바이너리에 대한 인터페이스 이며 ssh / http / https를 통한 로컬 커밋 및 푸시 도 지원합니다 .
JGit- http: //eclipse.org/jgit/
참고 URL : https://stackoverflow.com/questions/2701078/how-to-use-git-on-android
'Program Tip' 카테고리의 다른 글
std :: unique_ptr을 선언하는 방법과 그 용도는 무엇입니까? (0) | 2020.10.27 |
---|---|
메소드 참조 캐싱이 Java 8에서 좋은 아이디어입니까? (0) | 2020.10.27 |
IE8 브라우저 모드와 문서 모드 (0) | 2020.10.27 |
모바일 장치에서 웹 사이트를 디버깅하는 방법은 무엇입니까? (0) | 2020.10.27 |
Go에서 int와 int64의 차이점은 무엇입니까? (0) | 2020.10.27 |