git 仓库常见问题
GIT 生成 SSH 密钥
注意在生成 ssh 密钥时,防止覆盖本地默认 SSH KEY,可以使用ssh-keygen 命令支持通过 -f 参数指定生成密钥的文件名和路径,避免覆盖默认的 id_ed25519 文件。具体用法如下:
完整命令示例
ssh-keygen -t ed25519 -C "dw-git SSH" -f ~/.ssh/dw-git-ed25519参数说明
-f ~/.ssh/dw-git-ed25519:指定生成的私钥文件名为dw-git-ed25519,保存在~/.ssh/目录下;公钥文件会自动生成,后缀为.pub(即dw-git-ed25519.pub)。如果不指定路径(仅写文件名),则会在当前目录生成;建议指定完整路径(如
~/.ssh/自定义名称),方便管理。
执行过程
运行命令后,会提示设置密码(可留空):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:完成后,~/.ssh/ 目录下会生成:
dw-git-ed25519(私钥)dw-git-ed25519.pub(公钥)
配置 SSH 识别自定义密钥(可选)
如果需要让 SSH 自动使用这个密钥(而非默认的 id_ed25519),可以修改 ~/.ssh/config 文件:
Host dw-git.github.com # 实际 Git 服务器地址
IdentityFile ~/.ssh/dw-git-ed25519 # 指定自定义私钥路径这样,克隆或推送时使用 dw-git 作为主机名即可自动匹配密钥:
git clone git@dw-git:用户名/仓库名.git通过 -f 参数即可灵活指定密钥文件名,避免覆盖默认密钥,同时便于区分不同用途的 SSH 密钥。
添加权限
chmod 600 ~/.ssh/id_rsa # 替换为你的私钥文件名
常用问题
之前有过失败记录
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ED25519 key sent by the remote host is
SHA256:XXxXXXAOOAOAOAOOAOAOAOO
Please contact your system administrator.
Add correct host key in /Users/diaowen/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/diaowen/.ssh/known_hosts:3
Host key for dw.github.com has changed and you have requested strict checking.
Host key verification failed.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.此时只需要去删除或注释之前的记录
vi .ssh/known_hosts找到对应的记录#注释掉就可以
初始 git clone 仓库如果出现文件路径过长问题
这个问题的根源在于 Windows 系统的路径长度限制 与 Git 仓库中常见的深层目录结构发生冲突。
Windows 有一个默认规则:文件的完整路径(从盘符开始到文件名结束)不能超过 260 个字符。
而很多项目(尤其是 Java、C# 等后端项目)习惯采用多层目录组织代码,加上 Git 仓库本身的路径,很容易超过这个限制。
此时 Git 就会"卡壳",因为 Windows 不允许它创建路径过长的文件。
注意
这是 Windows 系统的限制,在 macOS 或 Linux 上基本不会遇到。
方法一、启用 Git 长路径支持(推荐)
打开 Git Bash 或命令提示符,执行以下命令:
git config --global core.longpaths true这条命令会告诉 Git 忽略 Windows 的 260 字符限制,允许处理更长的路径。
方法二、启用 Windows 长路径支持
从 Windows 10 版本 1607 开始,微软允许用户解除路径长度限制:
- 按
Win + R打开运行对话框 - 输入
gpedit.msc打开组策略编辑器 - 依次展开:计算机配置 → 管理模板 → 系统 → 文件系统
- 找到 "启用 Win32 长路径" 选项
- 双击打开,选择 "已启用",然后点击 "确定"
- 重启计算机使设置生效
提示
如果你的 Windows 版本没有 gpedit.msc(家庭版通常没有),可以通过修改注册表实现:
- 按
Win + R,输入regedit打开注册表编辑器 - 导航到:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem - 找到或创建
LongPathsEnabled项(DWORD 32 位值) - 将其值设置为
1 - 重启计算机
方法三、缩短克隆路径
如果上述方法不可行,可以尝试将仓库克隆到更短的路径:
# 不推荐:路径过长
git clone https://github.com/username/repo.git C:\Users\YourName\Documents\Projects\MyLongProjectName\repo
# 推荐:使用更短的路径
git clone https://github.com/username/repo.git C:\repo验证是否生效
配置完成后,重新执行 Git 操作(如 git clone 或 git pull),验证配置:
# 验证 Git 配置
git config --get core.longpaths如果返回 true,说明配置成功。如果不再报错,说明问题已解决。
注意事项
无论是配置 Git 还是修改注册表,请务必以管理员身份运行终端或编辑器,否则设置可能不生效。
此方法对绝大多数情况有效,但如果路径长度超过 Windows 的终极上限 32767 个字符(极少见),仍需缩短路径,例如将仓库克隆到根目录(如 D:\repo\)。
如果项目中有 Windows 用户,建议在 README 中说明需执行 git config --global core.longpaths true,避免因路径问题影响协作。

