Git 核心操作命令

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

命令 解释 使用场景 注意事项
git config --global user.name "你的用户名" 配置全局提交用户名 首次安装 Git 后,设置提交代码时的身份标识 --global 表示所有仓库生效,不加则仅当前仓库生效
git config --global user.email "你的邮箱" 配置全局提交邮箱 同上,邮箱建议用注册 GitHub/Gitee 的账号 提交记录会显示该邮箱,便于团队识别提交者
git config --global --list 查看全局配置信息 验证用户名 / 邮箱是否配置成功 能看到 user.nameuser.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 mainmain 是本地分支名(远程需有对应分支)
git push -u 远程库别名 本地分支名 推送并建立分支关联 首次推送分支到远程时 后续可直接 git push,无需写别名 / 分支名
git push -f 远程库别名 本地分支名 强制推送(覆盖远程) 远程库内容无用,需用本地内容替换 团队仓库禁止使用!会丢失远程提交记录,仅个人仓库可用
git pull 远程库别名 本地分支名 拉取远程最新代码并合并 远程库有新提交(如他人推送),同步到本地 核心:本地分支落后远程时,必须先 pullpush
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 验证)。

相关推荐
Allen_LVyingbo2 小时前
构建医疗AI数据集建设平台:Go语言工程方案详解
开发语言·人工智能·自然语言处理·golang·知识图谱·健康医疗
qyr67892 小时前
全球无人机市场发展趋势分析
大数据·人工智能·无人机·市场分析·市场报告
XerCis2 小时前
Python包与环境管理工具uv及pyproject.toml指南
开发语言·python·uv
testpassportcn2 小时前
AWS AIF-C01 認證介紹|AWS Certified AI Foundations 全面解析
人工智能
shangjian0072 小时前
AI大模型-卷积神经网络-卷积核的由来
人工智能·神经网络·cnn
oioihoii2 小时前
Vibe Coding在QT桌面开发中的可行性分析
开发语言·人工智能·qt
Cherry的跨界思维2 小时前
AI测试全面指南:从传统自动化到智能体的范式革命
人工智能
CCPC不拿奖不改名2 小时前
面向计算机应用的数学
人工智能·python·rnn·深度学习·embedding·应用开发数学