git clon httpxxxx #拉取
-
初始化 Git LFS
git lfs install
这条命令会安装并设置 Git LFS,使其能够处理大文件。
-
跟踪文件:
-
单个跟踪,选择上传对象
git lfs track "*.safetensors" git lfs track "*.h5" # HDF5文件 git lfs track "*.hdf5" # HDF5文件 git lfs track "*.mat" # MATLAB数据文件 git lfs track "*.npz" # NumPy压缩文件 git lfs track "*.pkl" # Python pickle文件 git lfs track "*.joblib" # scikit-learn joblib文件 git lfs track "*.npy"
这条命令会告诉 Git LFS 跟踪所有以
.safetensors
结尾的文件。 -
跟踪所有上传(慎用):
git lfs track "."
这条命令会跟踪当前目录下的所有文件。注意,这可能会跟踪很多文件,通常不推荐这样做,除非你确实需要跟踪所有文件。
-
验证使用:查看创建的 .gitattributes 文件
ls -la .gitattributes cat .gitattributes # 应显示: *.npy filter=lfs diff=lfs merge=lfs -text
-
验证:
# 检查哪些文件被LFS跟踪 git check-attr -a kaggle/your_file.npy # 应显示: kaggle/your_file.npy: diff: lfs
-
-
-
添加并提交 LFS 配置
git add .gitattributes git commit -m "添加Git LFS跟踪.xxx文件" #自定义提交描述信息
这条命令会将
.gitattributes
文件添加到暂存区。这个文件通常用于定义哪些文件应该由 Git LFS 处理。 -
添加目录下所有文件变更(添加您的.npy文件)
git add . #所有变更
这条命令会将当前目录下的所有变更(包括新文件、修改过的文件等)添加到暂存区。
git add kaggle/*.npy
这个是自定义路径:添加您的.npy文件(假设在kaggle子目录)
-
提交你上面的更改:
-
你可以使用以下任一命令来提交更改
git commit -m "Configure Git LFS to track *.safetensors" git push origin main
或 就是自定义提交描述不一样。
git commit -m "Configure Git LFS to track *.*" git push origin main
这两条命令都会创建一个新的提交,描述信息分别为配置 Git LFS 跟踪
.safetensors
文件和跟踪所有文件。 -
将本地更改提交到远程仓库分支:这条命令会将本地的更改推送到远程仓库的
main
分支。
-
配置 LFS 缓存持久化
1. 设置全局缓存位置
# 创建缓存目录(选择大容量磁盘分区)
mkdir -p /mnt/big_disk/git-lfs-cache
# 设置全局缓存
git config --global lfs.storage /mnt/big_disk/git-lfs-cache
# 验证配置
git config --global --get lfs.storage
补充:
-
设置 Git 用户邮箱
git config user.email "guanzhu UP@example.com"
这条命令用于设置 Git 用户的电子邮件地址。
-
设置 Git 用户名:
git config user.name "guanzhu UP"
得到这个 访问令牌
host=cnb.cool" | git credential-manager erase
修改已存在的 LFS 文件到普通仓库
-
找到 LFS 跟踪的文件
首先,需要确定哪些文件被 LFS 跟踪。可以通过以下命令查看git lfs ls-files
这会列出所有被 LFS 跟踪的文件。
-
移除 LFS 跟踪
如果你想将某个文件从 LFS 跟踪中移除,可以使用以下命令git lfs untrack <file>
例如,如果你想移除
largefile.zip
,可以运行git lfs untrack largefile.zip
验证:检查 .gitattributes 中该文件的配置是否更新
cat .gitattributes | grep open-wfi-2/*.npy
- 注意:
- 若文件路径包含空格或特殊字符,需用引号包裹
git lfs untrack
只会修改 .gitattributes 配置,不会自动修改已提交的历史
步骤 2:将文件添加到普通仓库
-
添加文件到普通仓库
现在文件已经不再被 LFS 跟踪,可以直接将其添加到普通仓库中git add <file>
-
提交更
git commit -m "Move file from LFS to regular repository"
-
推送更改
将更改推送到远程仓库git push
混沌合并
# 1. 保存当前状态(可选)
git stash
# 2. 获取最新远程状态
git fetch origin
# 3. 使用变基整合更改
git rebase origin/main
# 4. 如果有冲突,解决后继续
git add .
git rebase --continue
# 5. 恢复暂存的内容(如果有)
git stash pop
# 6. 更新配置防止未来问题
git config --global pull.rebase true
.gitignore配置文件示例
# 忽略 .a 文件
*.a
# 但否定忽略 lib.a, 尽管已经在前面忽略了 .a 文件
!lib.a
# 仅在当前目录下忽略 TODO 文件, 但不包括子目录下的 subdir/TODO
/TODO
# 忽略 build/ 文件夹下的所有文件
build/
# 忽略 doc/notes.txt, 不包括 doc/server/arch.txt
doc/*.txt
# 忽略所有的 .pdf 文件 在 doc/ directory 下的
doc/**/*.pdf