以下是优化并完善后的 Git 常用命令笔记,补充了细节说明、操作场景及扩展用法,结构更清晰,实用性更强:
一、初始配置(首次使用 Git 必做)
# 配置全局用户名(所有仓库生效)
git config --global user.name "xiaopohai"
# 配置全局邮箱(与 Git 服务器注册邮箱一致)
git config --global user.email "3584685883@qq.com"
# 查看当前配置
git config --list - 若需为单个仓库单独配置(覆盖全局),进入仓库目录后去掉
--global即可。
二、版本库操作
1. 创建本地版本库
# 进入目标目录(Windows 示例)
cd E:/project
# 创建文件夹(可选,也可直接在已有目录操作)
mkdir test
# 进入文件夹
cd test
# 初始化 Git 仓库(生成 .git 隐藏目录,存储版本信息)
git init - 注意:
.git目录是版本控制核心,不要手动删除或修改。
2. 从远程仓库克隆(初始化已有项目)
# 克隆远程仓库到本地(会自动创建与仓库同名的文件夹)
git clone <远程仓库地址>
# 示例:克隆 GitHub 仓库
git clone https://gitee.com/honeyrh/8688web.git 三、文件操作(工作区 → 暂存区 → 版本库)
1. 查看文件状态
# 详细显示工作区/暂存区文件状态(新增、修改、删除等)
git status
# 简化输出(短格式,适合快速查看)
git status -s 2. 添加文件到暂存区
# 添加当前目录所有文件(包括新增、修改,不包括删除)
git add .
# 添加指定文件(支持通配符,如 *.php)
git add 文件名
# 添加所有变化(包括新增、修改、删除的文件)
git add -A # 或 git add --all 3. 提交到版本库
# 提交暂存区文件到版本库,-m 后跟提交说明(必填,清晰描述改动)
git commit -m "初始化项目:添加首页、配置文件"
# 若已跟踪的文件修改后,可跳过暂存区直接提交(不推荐新手使用)
git commit -am "修改登录逻辑" 4. 删除文件
# 从版本库和工作区同时删除文件(彻底删除)
git rm 文件名
# 仅从版本库删除(保留工作区文件,不再跟踪)
git rm --cached 文件名
# 提交删除操作
git commit -m "删除无用的测试文件" 四、远程仓库交互(推送/拉取)
1. 关联远程仓库
# 为本地仓库添加远程地址(别名建议用 origin,默认约定)
git remote add 别名 <远程仓库地址>
# 示例:关联名为 origin 的远程仓库
git remote add origin https://gitee.com/honeyrh/8688web.git 2. 查看/修改远程仓库
# 查看已关联的远程仓库(别名和地址)
git remote -v
# 修改远程仓库地址
git remote set-url 别名 <新地址>
# 删除远程仓库关联
git remote remove 别名 3. 推送本地代码到远程
# 推送指定分支到远程(首次推送建议关联分支)
git push -u 远程别名 本地分支名
# 示例:推送 master 分支到 origin 远程(-u 关联后,后续可直接 git push)
git push -u origin master
# 推送其他分支(如 dev 分支)
git push origin dev 4. 拉取远程代码到本地
# 拉取远程指定分支并合并到当前本地分支
git pull 远程别名 远程分支名
# 示例:拉取 origin 远程的 dev 分支
git pull origin dev
# 拉取时用变基(rebase)代替合并(减少冗余提交,推荐协作场景)
git pull --rebase origin dev 解决特殊合并问题:
当本地与远程仓库无共同历史(如首次合并),拉取时可能报错,需允许无关历史合并:
git pull origin master --allow-unrelated-histories 五、版本控制(查看日志/切换版本)
1. 查看提交日志
# 查看完整提交日志(按时间倒序,最新的在最前)
git log
# 简化日志(只显示一行,包含提交哈希和说明)
git log --pretty=oneline
# 查看最近 N 条日志
git log -n 3
# 显示分支合并图(直观查看分支关系)
git log --graph --pretty=oneline 2. 查看所有操作记录(包括已删除的提交)
git reflog - 用于:切换到旧版本后,想再切回新版本(通过此命令获取新版本的哈希值)。
3. 切换版本(回退/前进)
# 回退到上一个版本(HEAD 是当前版本,^^ 表示上上个,~3 表示前3个)
git reset --hard HEAD^
# 等价于 git reset --hard HEAD~1
# 回退到指定版本(通过 git log 或 git reflog 获取哈希值)
git reset --hard <提交哈希>
# 示例:git reset --hard a1b2c3d --hard:强制覆盖工作区和暂存区,谨慎使用(未提交的改动会丢失)。
六、分支管理
1. 分支基础操作
# 查看所有分支(* 表示当前分支)
git branch
# 创建新分支
git branch 分支名
# 切换到指定分支
git checkout 分支名
# 创建并立即切换到新分支(推荐,一步到位)
git checkout -b 分支名
# 示例:创建并切换到 feature/pay 分支
git checkout -b feature/pay 2. 分支合并与删除
# 切换到目标分支(如合并到 master,先切到 master)
git checkout master
# 合并指定分支到当前分支
git merge 分支名
# 示例:合并 feature/pay 到 master
git merge feature/pay
# 删除已合并的分支(安全删除)
git branch -d 分支名
# 强制删除未合并的分支(谨慎,可能丢失代码)
git branch -D 分支名 解决合并冲突:
合并时若出现冲突(同一文件同一位置修改),Git 会提示冲突文件,需:
- 打开冲突文件,找到
<<<<<<< HEAD(当前分支内容)、=======(待合并分支内容)、>>>>>>> 分支名标记; - 手动编辑保留正确内容,删除标记;
- 执行
git add 冲突文件和git commit -m "解决合并冲突"完成合并。
七、SSH 密钥配置(免密码推送拉取)
# 生成 SSH 密钥(-t 指定加密类型,-C 关联邮箱)
ssh-keygen -t rsa -C "3584685883@qq.com" 执行后一路回车(默认路径和空密码即可),生成的密钥在:
- Linux/Mac:
~/.ssh/id_rsa(私钥,保密)和id_rsa.pub(公钥); - Windows:
C:\Users\用户名\.ssh\id_rsa.pub。
- Linux/Mac:
配置步骤:
- 打开
id_rsa.pub,复制全部内容; - 登录 Git 服务器(如 Gitea/GitHub),进入「个人设置 → SSH 密钥」,添加复制的公钥;
- 之后可用 SSH 地址(如
git@https://gitee.com/honeyrh/8688web.git)操作远程仓库,无需输入密码。
- 打开
八、其他实用命令
1. 清理未跟踪文件/目录(谨慎使用)
# 预览要删除的未跟踪文件/目录(安全,先看再删)
git clean -nfd
# 强制删除未跟踪文件(-f)和目录(-d)
git clean -fd - 用途:删除工作区中未被 Git 跟踪的临时文件、编译产物等,避免提交无关文件。
2. 暂存工作区改动(临时切换分支时用)
# 暂存当前工作区所有未提交的改动
git stash
# 查看暂存列表
git stash list
# 恢复最近一次暂存的改动(并删除暂存记录)
git stash pop
# 恢复指定暂存(通过 git stash list 查看索引,如 stash@{0})
git stash apply stash@{0} 3. 丢弃工作区修改
# 丢弃指定文件的工作区修改(未 add 到暂存区的改动)
git checkout -- 文件名
# Git 2.23+ 推荐用 restore(更清晰)
git restore 文件名 通过以上整理,覆盖了 Git 日常使用的核心场景,命令更规范,补充了注意事项和扩展用法,便于新手快速上手和日常参考。
评论 (0)