Git 基础核心工作流
git clon httpxxxx #拉取
-
配置身份 (仅需执行一次):
git config --global user.name "你的名字" git config --global user.email "你的邮箱" -
提交流程:
-
暂存 (Add):
git add .(将改动放入待提交区,添加目录下所有文件变更)。 -
本地提交 (Commit):
git commit -m "描述信息"(存入本地仓库)。 -
推送 (Push):
git push origin master(分支)(推送到远程服务器,如 Gitee/GitHub)。 -
状态查询:使用
git status -s快速查看当前哪些文件被修改且未提交。
-
第一步:把当前文件夹中的所有文件,提交到暂存区
git add ./url // 提交某个文件
git add ./ // 提交所有文件
git add kaggle/*.npy
• 第二步:把暂存区中的文件提交到本地仓库
git commit -m '提交的注释信息'
• 注意:每次提交都需要这两步。状态查看
- git status 查看在你上次提交之后是否有对文件进行再次修改
- git status -s 查看简短信息
第3步:将本地代码推送到gitee (非常重要)
// 将本地提交推送到远程仓库
git push origin master
GIT lfs
-
初始化 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 track "*.bin" git lfs track "*.csv"这条命令会告诉 Git LFS 跟踪所有以
.safetensors结尾的文件。 -
跟踪所有上传(慎用):
git lfs track "."这条命令会跟踪当前目录下的所有文件。注意,这可能会跟踪很多文件,通常不推荐这样做,除非你确实需要跟踪所有文件。=====================================
-
验证追踪是否成功
-
查看配置:
cat .gitattributes -
检查特定文件:
git check-attr -a path/to/file.npy -
查看 LFS 待处理列表:
git lfs ls-files
-
-
-
git add .gitattributes git add model.safetensors #这里注意替换你的实际文件 git commit -m "添加Git LFS跟踪.xxx文件" #自定义提交描述信息 git push origin main这条命令会将
.gitattributes文件添加到暂存区。这个文件通常用于定义哪些文件应该由 Git LFS 处理。
配置 LFS 缓存持久化
为了避免大文件反复下载占用系统盘空间,可以手动设置缓存路径(例如挂载的大容量磁盘):
设置全局缓存位置
# 创建缓存目录(选择大容量磁盘分区)
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
重置最近的提交
(如果你刚刚才提交)
如果这个大文件是你最近一次提交加入的,且你不需要保留那次提交的其他更改:
-
回退到上一个版本:
git reset --soft HEAD~1 -
从暂存区移除大文件:
git rm --cached path/to/large_file -
将大文件添加到
.gitignore:echo "path/to/large_file" >> .gitignore -
重新提交并推送。
混沌合并
# 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

5513

被折叠的 条评论
为什么被折叠?



