Skip to content
forked from maks/MGit

一个用于 Android 的 Git 客户端,复刻自MGit。

License

Notifications You must be signed in to change notification settings

Zacharia2/M2Git

 
 

Repository files navigation

MGit

GitHub Downloads (all assets, all releases)

MGit是一款Git客户端安卓应用。(Version ≥ Android 12)。拥有常用的拉取、推送、提交、合并、克隆、比较、衍合、择取、创建新的分支、添加本地仓库、重置更改等等功能。当前维护者为 maks/MGit,此分支的设计意义和目标是填补Android平台上对Git知识库同步功能的空白。

快速开始

使用多远程同步

增加功能:同步、撤销提交、Tokens设置、默认仓库目录,并所有依赖的软件包进行升级。修复暂存所有文件过慢问题、修复inlater has been closed导致的解压缩问题、修复 avatar 全球通用头像、修复仓库列表打开远程地址问题、修改提交命令中的暂存所有已跟踪的文件选项为暂存所有文件选项,减少一步暂存所有文件的步骤,以及优化一些使用体验等等。2025.12.17:默认外部存储、本地lfs不支持克隆拉取lfs、webdav 服务、下拉刷新状态、新的异步任务、升级jgit、验证凭证管理器逻辑、变更包名

MGit+Gitee用来同步obsidian、logseq等笔记库非常迅速且附加历史版本,可以随时回滚查看历史记录。国内推荐使用Gitee作为同步使用的默认远程仓库;用Github作为工作和备份用的远程仓库,可定时用桌面端Git命令进行同步。在桌面端使用git remote add添加多远程仓库Gitee和Github。移动端只使用默认默认的Gitee远程仓库,安装并打开MGit,点击顶部导航栏右侧菜单中的设置,配置Git用户名和用户邮箱。若你的仓库是私有的,则需要配置token账户和token秘钥。Token在Gitee中点击 用户头像-设置-令牌 ,然后点击生成令牌。此令牌专用于访问你的私有库。设置好后,点击导航栏最右侧菜单、点击克隆、填入克隆地址,等待克隆完成。你也可以选择导入,在导入时勾选导入为外部仓库。外部仓库和内部仓库的区别在于是否存储在软件自己的内部存储私有目录中,内部存储私有目录一般可以看做: data/data/package_nameandroid/data/package_name

image

在仓库列表中,点击仓库可以进入仓库详情页,在详情页可以左右滑动,从左到右分别有三个页面依次为:文件、提交、状态。可以在文件查看仓库中的文件,在提交可以查看提交的历史,在状态可以查看修改。一般使用状态查看修改状态,点击未暂存DIFF可以看到有没有修改的还没暂存的文件。我通常会使用仓库详情页中导航栏中最右侧的菜单按钮,打开后点击同步按钮,然后直接按照同步策略进行同步。现在好好享用安卓版本的快速同步功能吧!

克隆远程仓库

  1. 点击+图标添加新仓库
  2. 输入远程URL(见下面的URL格式)
  3. 输入本地仓库名称 - 注意这不是完整路径,因为MGit将所有仓库存储在同一个本地目录中(可以在MGit设置中更改)
  4. 点击Clone按钮
  5. 如果需要,系统会提示您输入连接到远程仓库的凭据。MGit会将仓库(所有分支)下载到您的设备上

创建本地仓库

  1. 点击+图标添加新仓库
  2. 点击Init Local创建本地仓库
  3. 当提示时,输入该仓库的名称
  4. 将创建一个本地的空仓库

URL格式

SSH URL

  • 运行在标准端口(22)的SSH:ssh://username@server_name/path/to/repo
  • 运行在非标准端口的SSH:ssh://username@server_name:port/path/to/repo
  • 需要填写username - 默认情况下,MGit会尝试以root身份连接。

HTTP(S) URL

  • HTTP(S) URL:https://server_name/path/to/repo

WebDav

配合WebDav客户端(RaiDrive)使用,可在任意安全的局域网环境中将手机挂载为网络磁盘。

以下是对 M2Git WebDav 的功能评估。

大类 小类 功能项 对应RFC/标准 功能描述 普遍支持度/说明 M2Git 实现情况
WebDav Class 1 1.1 资源与集合管理 基本方法 RFC 4918 MKCOL(创建集合)、PUT / DELETE / COPY / MOVE 核心必备 ✔️ 完整实现文件、目录的创建、删除、复制、移动操作。
集合成员枚举 RFC 4918 PROPFIND 方法配合 Depth: 1infinity,列出集合目录内容 核心必备 ✔️ 使用 FsDirectoryResource 提供目录内容枚举。
覆盖行为与前置条件 RFC 4918 Overwrite: T 头, If-Match, If-None-Match 条件操作 核心必备 ✔️ 条件请求支持。
1.2 属性管理 死属性与活属性 RFC 4918 死属性:客户端自定义元数据;活属性:由服务器管理,自动填充如文件大小/创建时间等信息 核心必备 ⚠️ 仅支持简单属性读写,活属性如creationdate未完全实现。
属性操作方法 RFC 4918 PROPFIND(查询)和 PROPPATCH(设置/删除) 核心必备 ✔️ 属性操作基本支持,资源可完成属性读写;
关键活属性 RFC 4918 creationdate, getetag 等属性,服务器生成基础资源元数据 实践必备 ⚠️ 部分活属性支持有限,ETag 生成未标准化(目前未使用唯一文件哈希生成)。
1.3 方法发现 OPTIONS 方法 RFC 7231, 4918 声明服务器的可支持功能,例如返回 DAV 标头中识别支持的扩展版本。 必备 ✔️ OPTIONS 方法支持基本能力声明,未包含明确扩展声明,如高级协议支持能力。
1.4 内容传输 部分内容传输 RFC 7233 Range / Content-Range 允许流式传输或断点续传大文件。 核心功能 ✔️ 文件分块传输功能完整,部分内容传输和断点续传实现,但尚未并发优化。
1.5 缓存与验证 缓存控制 RFC 7234 使用 ETag 和 Last-Modified 确保客户端正常缓存和验证资源版本。 重要功能 ⚠️ 基本支持 ETag 和 Last-Modified,生成值稳定性和唯一性不足,但够用。
实践扩展 2.1 配额与存储报告 配额属性 自定义/DAV: 扩展 提供磁盘空间限制或存储监控,如 quota-available-bytes 或使用限额报告。 企业功能常见 ✔️ 基本实现磁盘空间报告功能,仅根目录
2.2 主流兼容性 Windows 网盘 Microsoft 要求 确保资源兼容 Windows 的 WebDAV 网盘映射方式(net use 方法)。 重要 ⚠️ 基本支持 Windows 网络驱动映射,但存在部分兼容性细节问题。
macOS Finder Apple 要求 确保目录在 Finder 应用中的正常展示,包括 .DS_Store 支持。 重要 ⚠️ macOS 的 Finder 支持基础功能,但深度交互优化缺失。
2.3 现代安全 HTTPS 强制 安全最佳实践 强制加密传输,将所有 HTTP 请求转为 HTTPS。 生产环境必须 ❌ 未强制支持 HTTPS 或加密传输,传输安全性薄弱。

许可证

请参阅 GPLv3maks@manichord.com 编写的所有代码,您可以选择也可以在MIT许可证下使用。

About

一个用于 Android 的 Git 客户端,复刻自MGit。

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 95.5%
  • CSS 2.9%
  • Other 1.6%