Git 核心操作命令

一、基础配置命令(首次使用 Git 必配)

命令 解释 使用场景 注意事项
git config --global user.name "你的用户名" 配置全局提交用户名 首次安装 Git 后,设置提交代码时的身份标识 --global 表示所有仓库生效,不加则仅当前仓库生效
git config --global user.email "你的邮箱" 配置全局提交邮箱 同上,邮箱建议用注册 GitHub/Gitee 的账号 提交记录会显示该邮箱,便于团队识别提交者
git config --global --list 查看全局配置信息 验证用户名 / 邮箱是否配置成功 能看到 user.name 和 user.email 即为配置成功
git config --global core.quotepath false 解决中文文件名乱码 Git Bash 中中文文件名显示为编码(如 \346\234\252)时 仅优化显示,不影响文件提交 / 使用
git config --global core.autocrlf false 关闭换行符自动转换 Windows 系统推送时提示 LF will be replaced by CRLF 避免换行符差异导致的警告,不影响代码逻辑

二、仓库状态查看命令(高频使用)

命令 解释 使用场景 注意事项
git status 查看工作区 / 暂存区状态 每次提交前,确认哪些文件被修改 / 新增 / 删除 核心输出:Changes to be committed(暂存区)、Untracked files(未追踪)、working tree clean(无修改)
git log 查看本地提交历史记录 查看已提交的版本、作者、时间、备注 空仓库会提示 fatal: your current branch does not have any commits yet
git log --graph --oneline --all 图形化查看分支合并历史 多人协作 / 多分支开发时,清晰看到分支关系 --oneline 简化输出,--all 显示所有分支
git diff 文件名 查看文件的具体修改内容 确认文件改了哪一行、加 / 删了什么内容 无输出 = 文件无修改;有输出 = 显示具体差异
`git ls-files grep "文件名"` 查看仓库中是否包含指定文件 验证文件是否已被 Git 追踪(提交到仓库)
git remote -v 查看本地关联的远程库 确认远程库别名(如 origin/github1)和地址 输出格式:别名 地址 (fetch/push),分别对应拉取 / 推送地址

三、文件暂存 / 提交命令(核心流程)

命令 解释 使用场景 注意事项
git add 文件名 将指定文件加入暂存区 修改 / 新增文件后,标记为「待提交到本地库」 如 git add text1.py,仅添加单个文件
git add . 将所有修改 / 新增文件加入暂存区 批量提交多个文件时(推荐先过滤无用文件) 会添加所有未被 .gitignore 过滤的文件,避免提交缓存 / 环境文件
git add /绝对路径/文件名 通过绝对路径添加文件 未进入文件所在目录时,强制添加文件 推荐用相对路径(如 git add text1.py),更简洁不易错
git reset HEAD 文件名 将暂存区文件撤回到工作区 误把文件加入暂存区,想取消暂存 等同于 git restore --staged 文件名(Git 2.23+ 新增)
git restore 文件名 恢复工作区被删除 / 修改的文件 误删文件、想放弃文件修改时 用暂存区的版本覆盖工作区,恢复到最近一次 git add 的状态
git commit -m "提交备注" 将暂存区文件提交到本地库 暂存区有文件后,完成本地版本保存 -m 必须加,备注要清晰(如「新增登录功能」「修复 XX Bug」)
git commit 打开编辑器填写提交备注 想写多行 / 详细备注时 直接退出编辑器(不写备注)会导致提交失败

四、远程库关联 / 推送 / 拉取命令(协作核心)

命令 解释 使用场景 注意事项
git clone 远程库地址 克隆远程库到本地 本地无项目,首次获取远程代码 自动关联远程库(别名默认 origin),生成完整的本地仓库
git remote add 别名 远程库地址 关联远程库到本地仓库 本地新建仓库,想推送到远程时 如 git remote add github1 https://github.com/HYQ-MAX/nihao.git,别名自定义
git remote rename 旧别名 新别名 修改远程库别名 想把默认的 origin 改成更易识别的名称 如 git remote rename origin github,修改后推送需用新别名
git remote remove 别名 删除本地关联的远程库 关联错误的远程库,想重新关联时 如 git remote remove origin,仅删除本地别名,不影响远程库
git push 远程库别名 本地分支名 推送本地分支到远程库 本地提交后,同步到 GitHub/Gitee 如 git push origin main,main 是本地分支名(远程需有对应分支)
git push -u 远程库别名 本地分支名 推送并建立分支关联 首次推送分支到远程时 后续可直接 git push,无需写别名 / 分支名
git push -f 远程库别名 本地分支名 强制推送(覆盖远程) 远程库内容无用,需用本地内容替换 团队仓库禁止使用!会丢失远程提交记录,仅个人仓库可用
git pull 远程库别名 本地分支名 拉取远程最新代码并合并 远程库有新提交(如他人推送),同步到本地 核心:本地分支落后远程时,必须先 pull 再 push
git pull 远程库别名 分支名 --allow-unrelated-histories 强制合并无关联历史 本地和远程仓库提交记录无公共祖先(如本地新建 + 远程新建) 解决 fatal: refusing to merge unrelated histories 错误

五、分支管理命令(多场景开发)

命令 解释 使用场景 注意事项
git branch 查看本地所有分支 确认当前分支(* 标记)、已创建的分支 核心分支:main/master(主分支)、dev(开发分支)
git branch -a 查看本地 + 远程所有分支 确认远程有哪些分支(如 remotes/origin/main) 远程分支名需和本地对应,否则推送 / 拉取会报错
git branch 分支名 创建新分支(不切换) 基于当前分支,创建功能分支(如 feature/login) 仅创建,需手动切换到新分支
git checkout -b 分支名 创建并切换到新分支 一步完成「创建 + 切换」,高频使用 Git 2.23+ 可替换为 git switch -c 分支名(更直观)
git checkout 分支名 切换到已有分支 从功能分支切回主分支、或切换到 Bug 修复分支 切换前确保当前分支修改已提交 / 暂存,避免文件覆盖
git switch 分支名 切换到已有分支 同上,switch 语义更清晰(推荐) 仅 Git 2.23+ 支持,老版本用 checkout
git merge 分支名 合并指定分支到当前分支 功能分支开发完成,合并到主分支 / 开发分支 冲突时需手动解决:删除 <<<<<<</=======/>>>>>>,保留正确代码
git branch -d 分支名 删除本地已合并的分支 功能分支合并后,清理无用分支 未合并的分支会提示无法删除,需用 -D 强制删除
git branch -D 分支名 强制删除本地分支 确认分支无用(即使未合并),强制清理 会丢失分支上未合并的修改,谨慎使用
git push 远程库别名 --delete 分支名 删除远程分支 远程分支无用(如已合并的功能分支) 如 git push origin --delete dev,删除远程 dev 分支

六、其他实用命令(避坑 / 优化)

命令 解释 使用场景 注意事项
touch .gitignore 创建忽略文件配置 过滤无需提交的文件(如 venv/、__pycache__/) 核心规则:venv/(目录)、*.pyc(后缀)、.idea/(IDE 配置)
git stash 暂存未提交的修改 切换分支时,当前分支有未提交的修改(不想提交) 暂存后工作区变干净,可切换分支
git stash pop 恢复暂存的修改并删除记录 切回原分支,恢复之前暂存的修改 等同于「恢复 + 删除暂存记录」,git stash apply 仅恢复不删除
git rm 文件名 将文件删除操作同步到暂存区 工作区删除文件后,想把「删除」提交到仓库 如 git rm text1.py,提交后仓库中该文件也会被删除

核心流程总结(新手必记)

  1. 首次提交代码 :git add 文件名 → git commit -m "备注" → git push 远程别名 分支名

  2. 同步远程最新代码 :git pull 远程别名 分支名 → 解决冲突(如有)→ git push 远程别名 分支名

  3. 多分支开发 :git switch -c 功能分支 → 开发 → git switch 主分支 → git merge 功能分支 → git push

  4. 避坑关键:

    • 推送前先 git pull,避免本地分支落后;

    • 提交前先 git status,确认只提交需要的文件;

    • 远程库别名 / 分支名要准确(通过 git remote -v/git branch 验证)。

相关推荐
小弥儿几秒前
GitHub今日热榜 | 2026-10-12:pytorch 上升四位
人工智能·pytorch·学习·开源·github
sunneo2 分钟前
Google开源端侧推理引擎ML Drift
人工智能
前端 贾公子7 分钟前
LangGraph == 图的状态(State)管理 (中)
开发语言·数据库·python
m0_587383009 分钟前
无人自助拼豆系统落地开发实战指南 核心逻辑实现与部署经验分享
前端·javascript·vue.js·人工智能·经验分享·需求分析
troy12811 分钟前
深度解析:如何用好 AI,成为自身能力的放大器
人工智能
ACP广源盛1392462567312 分钟前
硬件选型笔记|国产 PCIe4.0 交换芯片 IX8012@ACP,边缘 AI 设备 IO 扩展方案探讨
人工智能·笔记·硬件架构·pcie·国产芯片
想会飞的蒲公英14 分钟前
Jev 模型详解:不生成文字的决策模型,接口、置信度与评测边界
人工智能·jev
虾..20 分钟前
计算机图形学:理解光照模型
人工智能
武子康22 分钟前
H3-World 的动作控制,为什么不能只靠一句提示词?
人工智能·agent
一木 之林23 分钟前
LangChain 第3章 消息与提示词模板:四类消息、历史管理与 ChatPromptTemplate
人工智能·计算机视觉·langchain