Git使用与避坑指南
🐙 Git 完整使用指南 (从 SSH 公钥到日常推拉)
1. 基础身份配置 (必须)
- 配置全局身份(解决 Author identity unknown 报错,这是每次 commit 的基础): git config –global user.name “你的GitHub用户名”
git config –global user.email “你的GitHub注册邮箱”
2. 绑定 SSH 公钥 (一劳永逸,免密登录)
- 步骤 1:生成 SSH 密钥。在终端运行以下命令(一路回车即可,不需要设置密码): ssh-keygen -t rsa -C “你的GitHub注册邮箱”
- 步骤 2:查看并复制公钥。找到生成的 .pub 文件,复制里面的全部内容。 cat ~/.ssh/id_rsa.pub
- 步骤 3:绑定到 GitHub。登录 GitHub 网页 -> 右上角头像 Settings -> 左侧 SSH and GPG keys -> New SSH key,将复制的内容粘贴进去保存。
- 步骤 4:验证绑定是否成功。在终端输入: ssh -T git@github.com 看到 Hi 你的用户名! You’ve successfully authenticated 就代表成功了。
3. 仓库初始化与关联
本地新建仓库初始化:
git init关联远程仓库 (注意使用 SSH 格式,而非 HTTPS):
1
git remote add origin git@github.com:用户名/仓库名.git`
查看当前关联的远程地址:
git remote -v
4. 日常提交与推送 (三步曲)
- 添加所有修改到暂存区 (注意后面的英文句号):
git add . - 提交并备注:
git commit -m "update" - 推送到远程 (首次推送加 -u 绑定分支,以后直接 git push 即可):
git push -u origin main 或 master
5. 常见报错与排雷 (亲身踩坑版)
- 报错:rejected - non-fast-forward (远程仓库有 README,你本地没拉取):
先拉取合并历史,再推送:1
2
3git pull origin main --allow-unrelated-histories
git push -u origin main - 报错:src refspec main does not match any (本地叫 master,命令敲了推 main):
把本地分支改名git branch -M main,或者直接推git push -u origin master。 - 报错:adding embedded git repository (嵌套 Git 仓库,网页上显示蓝色箭头):
原因:主文件夹里套了另一个带 .git 的子仓库。
解决:进入子文件夹,彻底删除里面的隐藏 .git 文件夹 (rm -rf .git),然后回到主目录重新 git add .。
6. 后悔药与清理
- 清除 Git 缓存(修改 .gitignore 不生效时使用,比如 node_modules 还在被追踪):
1
2
3
4
5
6
7git rm -r --cached .
git add .
```
* 本地强制回滚(丢弃所有未提交的修改,回到最后一次 commit 的状态):
```bash
git reset --hard HEAD
git clean -fd # 清理未追踪的垃圾文件
7. 核心避坑常识
- **千万不推 node_modules/**:体积太大,别人拉代码后只需 npm install 即可恢复。
- .gitignore 规则:屏蔽 node_modules/、public/、.deploy_git/、.vs/ 等无用文件。
- package.json 与 package-lock.json:必须同时提交,一个管清单,一个管精确版本,保证多端环境一致。
署名-非商业性使用本文采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ZEKALRYN'S BLOG!
评论
