🐙 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
    3
    git 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
    7
        git 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:必须同时提交,一个管清单,一个管精确版本,保证多端环境一致。