配置git 以及git-lfs

本文详细介绍如何配置Git用户信息,包括设置用户名、邮箱、生成SSH密钥,并讲解如何使用SSH-agent管理私钥,以及配置Git LFS以高效传输大文件。同时,提供了解决常见问题的方法。

设置用户信息

设置Git的user name和email:(如果是第一次的话)

  • 1.配置用户名
git config --global user.name "**"
  • 2.配置邮箱
git config --global user.email "**@**.com"
  • 3.生成密钥
ssh-keygen -t rsa -C "**@**.com"

连续3个回车。如果不需要密码的话。最后在用户根目录下得到了两个文件:id_rsa和id_rsa.pub。

  • 添加密钥到ssh-agent
    确保 ssh-agent 是可用的。ssh-agent是一种控制用来保存公钥身份验证所使用的私钥的程序,其实ssh-agent就是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,其他程序需要身份验证的时候可以将验证申请交给ssh-agent来完成整个认证过程。
    eval "$(ssh-agent -s)"
Agent pid 59566
  • 添加生成的 SSH key 到 ssh-agent。
ssh-add ~/.ssh/id_rsa
  • 4.传输大文件LFS

设置lfs私有服务器地址

git config --global lfs.url " http://v1/lfs/"

保存用户信息并避免重复输入密码

git config --global credential.helper store

其中.gitconfig 文件内容如下

[user]
	name = **
	email = **@**.com
[core]
	editor = emacsclient
[lfs]
	url =  http://devcenter.bj.**.com/api/v1/lfs/
[credential]
	helper = store
[credential "ssh://gerrit.bj.***.com"]
    username = yuyang2
[winUpdater]
	recentlySeenVersion = 2.27.0.windows.1
[filter "lfs"]
	clean = git-lfs clean -- %f
	smudge = git-lfs smudge -- %f
	process = git-lfs filter-process
	required = true
git config  --system --unset  credential.helper

在用户根目录查看.git-credential文件,不为空。

http://yuyang2:****@devcenter.bj.**.com

在第一次clone项目时,可能要求输入LFS账户和密码,其中密码获取方式:
登录devcenter的profile界面,如果没有生成过Api Secret,会看到Generate按钮,点击生成。如果已经生成过,会看到Show按钮。点击获得lfs密钥。
在这里插入图片描述

  • git clone代码
    在这里插入图片描述
    如果checkout有问题,或者中间过程出错:
git config --system --unset

再重新拉取代码。

<think>我们正在配置Git的smudge过滤器以支持Git LFS(Large File Storage)。根据引用[3]中的信息,当使用Git LFS时,可能会遇到错误“error: external filter git-lfs smudge -- %f failed”。为了解决这个问题,我们需要正确配置Git的smudge过滤器。 在Git中,smudge过滤器用于在检出文件时执行的操作。对于Git LFS,我们需要将smudge过滤器设置为运行`git-lfs smudge -- %f`,以便在检出文件时能够正确处理大文件。 配置方法如下: 1. **设置全局Git配置**:我们可以通过以下命令设置全局的smudge过滤器: ```bash git config --global filter.lfs.smudge "git-lfs smudge -- %f" ``` 这个命令会在全局Git配置文件中添加以下内容: ``` [filter "lfs"] smudge = git-lfs smudge -- %f ``` 2. **同时设置clean过滤器**:通常,我们也会同时设置clean过滤器,以便在将文件添加到Git时触发Git LFS的处理。设置clean过滤器的命令是: ```bash git config --global filter.lfs.clean "git-lfs clean -- %f" ``` 3. **设置required属性**(可选):为了确保Git LFS过滤器被正确使用,可以设置required属性为true: ```bash git config --global filter.lfs.required true ``` 4. **验证配置**:我们可以通过以下命令查看全局配置,确认设置是否生效: ```bash git config --global --list ``` 或者查看特定配置项: ```bash git config --global filter.lfs.smudge ``` 此外,引用[2]和[引用[3]中提到,在克隆仓库之前,有时需要先运行`git lfs install --skip-smudge`。这个命令会设置Git的钩子,并跳过对LFS文件的立即检出(smudge操作),从而避免在克隆过程中下载大文件,提高克隆速度。之后,当需要这些大文件时,可以运行`git lfs pull`来获取。 总结步骤: - 首先,确保已经安装了Git LFS(如果没有安装,请先安装)。 - 配置全局的smudge和clean过滤器。 - 在克隆大型仓库之前,使用`git lfs install --skip-smudge`初始化Git LFS并跳过初始smudge。 - 克隆仓库后,使用`git lfs pull`来获取大文件。 如果遇到问题,可以参考引用[3]中的解决方案,确保按照步骤操作。 相关问题: 1. Git LFS 是什么?它解决了什么问题? 2. 除了 smudge 和 clean 过滤器,Git LFS 还有哪些关键配置? 3. 如何解决 Git LFS 在克隆或检出大文件时出现的常见错误?</think>### 配置 Git LFS Smudge 过滤器的方法 要正确配置 Git 的 smudge 属性以支持 Git LFS,请按以下步骤操作: 1. **设置全局 smudge 过滤器** ```bash git config --global filter.lfs.smudge "git-lfs smudge -- %f" ``` 此命令将全局配置 Git 在检出文件时使用 `git-lfs smudge` 处理 LFS 文件[^3]。 2. **同时配置 clean 过滤器(推荐)** ```bash git config --global filter.lfs.clean "git-lfs clean -- %f" ``` 确保文件添加时也经过 LFS 处理[^3]。 3. **设置 LFS 过滤器为必需** ```bash git config --global filter.lfs.required true ``` 强制 Git 始终使用 LFS 过滤器[^3]。 4. **验证配置** ```bash git config --global --list | grep lfs ``` 应显示类似输出: ``` filter.lfs.clean=git-lfs clean -- %f filter.lfs.smudge=git-lfs smudge -- %f filter.lfs.required=true ``` ### 完整配置流程 1. 安装 Git LFS: ```bash git lfs install --skip-smudge # 初始化并跳过初始 smudge 处理[^2][^3] ``` 2. 设置全局配置: ```bash git config --global core.longpaths true # 解决长路径问题[^2] git config --global filter.lfs.smudge "git-lfs smudge -- %f" git config --global filter.lfs.clean "git-lfs clean -- %f" ``` 3. 克隆仓库(使用 SSH 或 HTTPS): ```bash git clone <repository-url> ``` 4. 单独拉取 LFS 文件: ```bash git lfs pull # 手动获取大文件[^3] ``` ### 常见问题解决 若遇到 `error: external filter git-lfs smudge -- %f failed`: 1. 确认 Git LFS 已安装:`git lfs version` 2. 检查网络连接(特别是访问 huggingface.co 时)[^3] 3. 重试命令:多次执行 `git lfs pull` 4. 检查代理设置:`git config --global http.proxy` > 关键提示:使用 `--skip-smudge` 初始化可避免克隆时立即处理大文件,加快初始克隆速度[^2][^3]。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值