Disable LFS tracking for internal Git remote
This commit is contained in:
+2
-17
@@ -1,22 +1,7 @@
|
||||
* text=auto
|
||||
|
||||
# Large binary assets and ROS data should be stored with Git LFS.
|
||||
*.pcd filter=lfs diff=lfs merge=lfs -text
|
||||
*.db3 filter=lfs diff=lfs merge=lfs -text
|
||||
*.bag filter=lfs diff=lfs merge=lfs -text
|
||||
*.mcap filter=lfs diff=lfs merge=lfs -text
|
||||
*.onnx filter=lfs diff=lfs merge=lfs -text
|
||||
*.engine filter=lfs diff=lfs merge=lfs -text
|
||||
*.pt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pth filter=lfs diff=lfs merge=lfs -text
|
||||
*.a filter=lfs diff=lfs merge=lfs -text
|
||||
*.so filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.tar filter=lfs diff=lfs merge=lfs -text
|
||||
*.tar.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.gif filter=lfs diff=lfs merge=lfs -text
|
||||
# Common binary media.
|
||||
# Binary assets and ROS data are committed as ordinary Git objects because the
|
||||
# current internal Git server does not expose a usable Git LFS endpoint.
|
||||
*.png binary
|
||||
*.jpg binary
|
||||
*.jpeg binary
|
||||
|
||||
+5
-12
@@ -5,8 +5,8 @@
|
||||
## 已处理
|
||||
|
||||
- 已新增根目录 `.gitignore`,排除 colcon 构建产物、Python 缓存、日志、IDE 数据库和本地助手状态目录。
|
||||
- 已新增根目录 `.gitattributes`,将 `.pcd`、`.db3`、`.bag`、`.mcap`、模型文件、静态库、动态库、压缩包和较大的 GIF 标记为 Git LFS 文件。
|
||||
- 已确认本机安装了 Git LFS:`git-lfs/3.0.2`。
|
||||
- 已新增根目录 `.gitattributes`,将 `.pcd`、`.db3`、`.bag`、`.mcap`、模型文件、静态库、动态库、压缩包和较大的 GIF 标记为普通 Git 二进制文件。
|
||||
- 远端 Git LFS 接口不可用,已将原 LFS 指针转回普通 Git 对象。
|
||||
- 已确认当前未发现 `build/`、`install/`、`log/` 目录。
|
||||
- 已备份并删除无效/嵌套 `.git/` 元数据,备份目录为 `/tmp/farui_git_metadata_backup_20260605_132216`。
|
||||
- 已初始化根目录 Git 仓库,当前分支为 `main`。
|
||||
@@ -17,14 +17,14 @@
|
||||
|
||||
- 根目录只有一个有效 `.git/`。
|
||||
- 工作区当前为 clean 状态。
|
||||
- 当前未配置远端仓库。
|
||||
- 当前有 26 个文件由 Git LFS 管理。
|
||||
- 当前远端仓库为 `http://git.fairylandtech.com/whut/FaRui_Campus_ADS.git`。
|
||||
- 当前没有文件由 Git LFS 管理。
|
||||
|
||||
## 大文件
|
||||
|
||||
当前最大本地生成物是 `.vscode/browse.vc.db`,约 867 MB,已通过 `.gitignore` 排除。
|
||||
|
||||
仍然建议使用 Git LFS 管理以下类型的大文件:
|
||||
当前内部 Git 服务器没有可用的 LFS 接口,因此以下类型的大文件以普通 Git 二进制文件提交:
|
||||
|
||||
- 点云和地图测试数据:`*.pcd`
|
||||
- ROS bag 数据:`*.db3`、`*.bag`、`*.mcap`
|
||||
@@ -83,12 +83,5 @@ git remote add origin <远端仓库地址>
|
||||
git push -u origin main
|
||||
```
|
||||
|
||||
如果远端平台需要 Git LFS,请确认远端仓库已启用 LFS,并在推送前执行:
|
||||
|
||||
```bash
|
||||
git lfs install
|
||||
git lfs ls-files
|
||||
```
|
||||
|
||||
如果以后决定改成 submodule 管理第三方依赖,需要从当前单体仓库方式重新设计
|
||||
`.gitmodules`,并替换对应目录的 vendored source。
|
||||
|
||||
+8
-6
@@ -8,7 +8,7 @@
|
||||
# Notes:
|
||||
# - If origin already exists, -r/--remote can be omitted.
|
||||
# - If the working tree has changes, provide -m/--message to commit them.
|
||||
# - Git LFS must be available on both local machine and remote hosting service.
|
||||
# - This repository currently does not require Git LFS on the remote.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
@@ -91,11 +91,13 @@ command -v git >/dev/null 2>&1 || die "git is not installed."
|
||||
REPO_ROOT="$(git rev-parse --show-toplevel 2>/dev/null)" || die "Not inside a Git repository."
|
||||
cd "$REPO_ROOT"
|
||||
|
||||
if ! git lfs version >/dev/null 2>&1; then
|
||||
die "Git LFS is not installed. Install git-lfs before pushing this workspace."
|
||||
fi
|
||||
|
||||
LFS_COUNT="0"
|
||||
if git lfs version >/dev/null 2>&1; then
|
||||
git lfs install --local >/dev/null
|
||||
LFS_COUNT="$(git lfs ls-files | wc -l | tr -d ' ')"
|
||||
else
|
||||
warn "Git LFS is not installed. This is acceptable only when no LFS files are tracked."
|
||||
fi
|
||||
|
||||
if [[ -z "$BRANCH" ]]; then
|
||||
BRANCH="$(git branch --show-current)"
|
||||
@@ -149,7 +151,7 @@ else
|
||||
log "Working tree is clean."
|
||||
fi
|
||||
|
||||
log "LFS files tracked: $(git lfs ls-files | wc -l | tr -d ' ')"
|
||||
log "LFS files tracked: $LFS_COUNT"
|
||||
log "Pushing branch '$BRANCH' to '$REMOTE_NAME'."
|
||||
git push -u "$REMOTE_NAME" "$BRANCH"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user