Git LFS

git clon httpxxxx #拉取 

  1. 初始化 Git LFS

    git lfs install

    这条命令会安装并设置 Git LFS,使其能够处理大文件。

  2. 跟踪文件:

    • 单个跟踪,选择上传对象

      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
        
  3. 添加并提交 LFS 配置

    git add .gitattributes
    git commit -m "添加Git LFS跟踪.xxx文件"  #自定义提交描述信息

    这条命令会将 .gitattributes 文件添加到暂存区。这个文件通常用于定义哪些文件应该由 Git LFS 处理。

  4. 添加目录下所有文件变更(添加您的.npy文件

    git add .  #所有变更
    

    这条命令会将当前目录下的所有变更(包括新文件、修改过的文件等)添加到暂存区。

    git add kaggle/*.npy

    这个是自定义路径:添加您的.npy文件(假设在kaggle子目录)

  5. 提交你上面的更改:

    • 你可以使用以下任一命令来提交更改

      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

补充:
 

  1. 设置 Git 用户邮箱

    git config user.email "guanzhu UP@example.com"

    这条命令用于设置 Git 用户的电子邮件地址。

  2. 设置 Git 用户名:

    git config user.name "guanzhu UP"

得到这个 访问令牌 

host=cnb.cool" | git credential-manager erase

修改已存在的 LFS 文件到普通仓库

  1. 找到 LFS 跟踪的文件
    首先,需要确定哪些文件被 LFS 跟踪。可以通过以下命令查看

    git lfs ls-files

    这会列出所有被 LFS 跟踪的文件。

  2. 移除 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:将文件添加到普通仓库

  1. 添加文件到普通仓库
    现在文件已经不再被 LFS 跟踪,可以直接将其添加到普通仓库中

    git add <file>
  2. 提交更

    git commit -m "Move file from LFS to regular repository"
  3. 推送更改
    将更改推送到远程仓库

    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

全网最详细-喂饭级 新人CNB平台文件上传教程 Git lfs+对象储存cos_哔哩哔哩_bilibili

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值