够用,且是首选方案;Ubuntu 22.04+ 自带 Git 2.34+,支持现代特性,无需源码编译,apt 安装稳定安全,避免依赖缺失导致 SSL 错误。

Ubuntu上直接用apt装Git够用吗
够用,而且是首选方案。Ubuntu 22.04+ 自带的 git 版本已到 2.34+,完全支持 main 默认分支、稀疏检出、部分克隆等现代特性,没必要折腾源码编译。
- 先更新索引:
sudo apt update - 再安装:
sudo apt install git -y - 验证:
git --version输出类似git version 2.34.1即可
别信“旧版不安全”这类模糊说法——只要不是 Ubuntu 16.04 那种已 EOL 的系统,apt 源里的 Git 就是稳定且维护中的。自己编译反而容易因漏装依赖(比如 libcurl4-openssl-dev 或 gettext)导致 git clone 报 fatal: unable to access '...': SSL connect error。
配置用户名和邮箱必须加 --global 吗
不是必须,但绝大多数人应该加。不加 --global 的话,配置只对当前目录下的仓库生效,一旦切到另一个项目目录,git commit 就会报错:please tell me who you are。
- 全局设一次就行:
git config --global user.name "Alice"和git config --global user.email "alice@company.com" - 如果某个公司项目要用不同邮箱(比如区分个人/工作),进到那个仓库目录后,去掉
--global再设一遍:git config user.email "alice@work.com" - 检查是否生效:
git config user.email(查当前仓库)或git config --global user.email(查全局)
注意:邮箱地址不需真实存在,但必须格式合法(含 @ 符号),否则 GitHub/GitLab 会拒绝关联提交记录。
为什么 clone 总卡在密码输入,而不是走 SSH
因为你用的是 https:// 地址,不是 git@ 开头的 SSH 地址。HTTPS 协议每次 push/pull 都要输账号密码(或个人访问令牌),而 SSH 密钥认证是一次配好、长期免密。
- 生成密钥(推荐 ed25519):
ssh-keygen -t ed25519 -C "alice@company.com",一路回车用默认路径 - 把公钥内容加到 GitHub/GitLab 等平台的 SSH 设置里:
cat ~/.ssh/id_ed25519.pub - 改用 SSH 地址克隆:
git clone git@github.com:username/repo.git,不是https://github.com/username/repo.git
常见坑:复制公钥时多选了换行符,或粘贴到平台时末尾多了空格;还有人把私钥(id_ed25519)误当公钥上传——这会导致权限被吊销,得立刻删掉重来。
.gitignore 文件写错会导致什么
它不会报错,但会让你以为“文件没提交”,其实只是被 Git 忽略了——最典型的是 node_modules/ 没忽略,结果 git add . 把几万个小文件全塞进暂存区,git status 卡死,git commit 直接 OOM。
- 新建项目第一件事就是建
.gitignore,至少包含:node_modules/、__pycache__/、*.log、.env - 已跟踪的文件(比如之前没设 ignore 就 commit 过的
config.json)再加进.gitignore也无效,得先取消跟踪:git rm --cached config.json - 用
git check-ignore -v somefile可查某文件为何被忽略,避免盲目猜测
真正麻烦的是团队协作时有人忘了提交 .gitignore,结果你本地没忽略的临时文件被他一起推上去了——这种问题不会报错,但会让仓库变得臃肿又混乱。