Skip to content

catpuppyapp/PuppyGit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PuppyGit

PuppyGit is A Git Client for Android, Open Source and No Ads and Free to use

Author

PuppyGit made by Bandeapart1964 of catpuppyapp

PuppyGit is a free app, but if it helpful to you, please consider Star + Donate, it will help this project long live.

Demo Video:

Clone A Repo
Obisdian + PuppyGit
Markor + PuppyGit
Switch DarkMode and Chinese
Resolve Conflicts/Squash Commits

Download

GitHub Release Image IzzyOnDroid Release Image
PS:If you are an old user, maybe you was saw "PuppyGit Pro",and now it's disappeared, Don't worry, No Difference Of "PuppyGit Pro" and "PuppyGit", just changed the name for simple.

PuppyGit + Notes App = A new way to sync your notes on Android!

Not only sync codes, You can use PuppyGit sync your notes repository create by note-taking apps like: Obsidian / Markor or Other!

2fa

If your github/gitlab or other platforms account enabled 2fa, you may need create a personal access token instead your password

see:
github create personal access token
gitlab create personal access token

Screenshots

Features

  • fetch
  • merge
  • pull
  • push
  • files explorer
  • simple file editor (only utf8 supported)
  • commit history (git log)
  • shallow clone(git clone with depth)
  • rebase
  • cherry-pick
  • patch
  • reflog
  • tags
  • stashes
  • remotes
  • branches
  • submodules
  • squash commits
  • reset
  • resolve conflicts

About ssh

when first time connect to an unkown host, PuppyGit will ask you allow/reject as default, its more safty, also, if you want, you can allow unknown hosts by default, just checkout the Settings page.

note: PuppyGit only require private key and passphrase for connect to remote repo by ssh, it doesn't support generate ssh keys, if you want to generate ssh keys on android, try another app of mine: Ssh Key Man

About signing commit/tag

see: #4

About PC version

see: #11

Build

import project to Android Studio, then build, that's all. (android NDK is required)

if you want to build libs by your self

The workflow describe how to build libs and the apk

Security

I recommend every user set a master password, it will used to encrypt password/passphrase of your credentials, you can set it on Settings screen. If you don't set master password, will use a public default password encrypt your credential, it is not enough safe cause it is public and actually no way hidden it.

Help translate

  1. Download strings.xml
  2. Translate the file's values to your language, e.g.<help>help translate</help>to<help>帮助翻译</help>
  3. Create a issue attaching the file you was translated, the issue should tell which language you traslated to

Then I'll add your language into PuppyGit in furthur version

*NOTE: the string in strings.xml like "ph_a3f241dc_NUMBER" are place holders, the last NUMBER is order, e.g. a string resource <str1>name: ph_a3f241dc_1, age: ph_a3f241dc_2</str1>, will replaced when running, it maybe will show as: "name: abc, age: 123", if you have mistake with the order number, e.g.<str1>name: ph_a3f241dc_2, age: ph_a3f241dc_1</str1>, it may cause app show wrong text like "name: 123, age: abc"

Comments in code

this project has many chinese comments, and some comments are out-of-date or nonsense, I have no plan clean them, but if you read the codes, and you wonder know some comments meaning, try translator or ask me is ok

Credits

Logo

The PuppyGit logo designed by Bandeapart1964(myself)
The Git Logo in PuppyGit logo is created by Jason Long, is licensed under the Creative Commons Attribution 3.0 Unported License. (The Git Logo)

Libs

The libgit2.so built from libgit2 1.8.4(LICENSE)
The libssh2.so built from libssh2 1.11.1(LICENSE)
The libgit24j.so and git24j-1.0.4.20241114.jar built from a fork of Git24j, the fork link is Here(LICENSE)
The libcrypto.so and libssl.so built from openssl 3.4.0(LICENSE)
The Editor of PuppyGit is modified from kaleidot725's text-editor-compose(LICENSE)

Other Files

The Log class MyLog changed from: changyiqiang's blog
The MIMEType related util classes copied from ZhangHai's Material Files(LICENSE)
The function FsUtil.openFileEditFirstIfFailedThenTryView() origin version copied from MGit FsUtil.openFile()(LICENSE)
The PermissionUtils copied from Neo-Backup PermissionUtils class(LICENSE)