Git CMD 和 Git Bash
- Git CMD 是让 Git 在 Windows CMD 里执行命令,也可以执行 Windows 原生命令。
- Git Bash 是模拟 Linux 终端环境,支持 Linux 命令。
Git 基础配置
配置 Git 用户信息
git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"
说明:
--global
表示对当前电脑所有仓库生效。user.name
和user.email
是每个提交的作者信息,记录在 commit 中。
查看当前配置
git config --list
创建和管理仓库
在 GitHub 上新建仓库
- 登录 GitHub,点击右上角“+”,选择“New repository”。
- 填写仓库名称,点击“Create repository”。
- 复制远程仓库地址,例如:
https://github.com/你的用户名/你的仓库名.git
克隆远程仓库
git clone [email protected]:用户名/仓库名.git
或 HTTPS:
git clone https://github.com/用户名/仓库名.git
本地项目上传流程
假设本地已有项目目录 my_project/
:
cd my_project # 进入项目目录
git init # 初始化 Git 仓库
git add . # 添加所有文件
git commit -m "首次提交" # 本地提交
git branch -M main # 将默认分支改名为 main(推荐)
git remote add origin https://github.com/你的用户名/你的仓库名.git # 添加远程仓库
git push -u origin main # 推送到 GitHub 并设置上游分支
以后更新项目的流程
git add . # 添加改动文件
git commit -m "更新说明" # 提交改动
git push # 推送到远程仓库
快速创建新项目并上传示例
mkdir new_project && cd new_project
echo "# My Project" > README.md
git init
git add .
git commit -m "init"
git remote add origin https://github.com/你的用户名/你的仓库.git
git push -u origin main
Git 常用操作与状态管理
查看仓库状态
git status
查看提交历史
git log
简洁版:
git log --oneline --graph --all
撤销操作
- 撤销暂存:
git reset HEAD <文件名>
- 撤销工作区修改(恢复到最后一次提交):
git checkout -- <文件名>
- 修改最后一次提交信息:
git commit --amend
删除分支
- 删除本地分支:
git branch -d <分支名>
- 强制删除未合并本地分支:
git branch -D <分支名>
- 删除远程分支:
git push origin --delete <分支名>
分支管理
创建分支
git branch <分支名>
切换分支
git checkout <分支名>
git switch <分支名>
创建并切换分支
git checkout -b <分支名>
合并分支
git merge <另一个分支>
在当前分支执行,合并另一个分支内容到当前分支。
变基操作
git rebase <另一个分支>
使当前分支基于另一个分支的最新提交重新应用,保持提交历史线性。
处理远程冲突
当 push 被拒绝,提示:
error: failed to push some refs
通常是远程有新的提交,本地未同步。
解决方法:
git pull origin main --rebase
git push origin main
强制推送的风险
⚠️ 强制推送命令:
git push -f
会覆盖远程历史,使用前需确认风险,避免覆盖他人工作。
.gitignore 文件
用于忽略不想提交的文件,如:
*.log
node_modules/
.env
Git SSH 连接配置流程
生成 SSH Key
ssh-keygen -t ed25519 -C "备注信息"
参数说明:
ssh-keygen
:生成 SSH 密钥对。-t ed25519
:密钥算法类型,推荐使用 ed25519。-C
:注释,便于识别。
默认保存在 ~/.ssh/id_ed25519
,可用 -f
自定义文件名:
ssh-keygen -t ed25519 -C "备注" -f ~/.ssh/自定义文件名
添加公钥到 GitHub
- 查看公钥内容:
cat ~/.ssh/id_ed25519.pub
或自定义路径:
cat ~/.ssh/自定义文件名.pub
- 登录 GitHub:
- 头像 → Settings → SSH and GPG keys → New SSH key
- 填写 Title,粘贴公钥内容,保存。
修改远程仓库地址为 SSH 格式
查看远程地址:
git remote -v
修改为 SSH 地址:
git remote set-url origin [email protected]:你的用户名/你的仓库名.git
配置 SSH 使用自定义密钥(可选)
编辑或创建 ~/.ssh/config
文件:
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/自定义密钥文件名
测试 SSH 连接
ssh -T [email protected]
成功显示:
Hi 你的用户名! You've successfully authenticated, but GitHub does not provide shell access.
失败则显示 Permission denied (publickey)
,需检查配置。
推送代码
git add .
git commit -m "首次提交"
git push origin main
若远程已有内容,先拉取再推送:
git pull origin main --rebase
git push origin main
SSH 多账户配置(进阶)
配置多个 SSH Key:
Host github-personal
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_personal
Host github-work
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_work
克隆或推送时用对应别名:
git clone git@github-personal:用户名/仓库.git
SSH Key 权限设置
私钥权限要正确:
chmod 600 ~/.ssh/id_ed25519
权限过宽可能导致 SSH 拒绝使用密钥。
设置默认推送分支
首次推送时用:
git push -u origin main
以后只需:
git push
GPG 签名(进阶)
用于保证提交身份真实性:
git commit -S -m "message"