news 2026/3/5 7:36:22

Git 常用命令与使用方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Git 常用命令与使用方法

一、Git 基本概念

1. 三个核心区域

  • 工作区(Working Tree)
    本地正在编辑、修改代码的目录

  • 暂存区(Index / Stage)
    通过git add选择、准备提交的改动

  • 本地仓库(Repository)
    已通过git commit保存的历史版本

Git 的本质:在这三个区域之间移动和管理代码变更。


二、最基础且最常用的命令

1. 查看仓库状态(最常用)

gitstatus

用途:

  • 查看哪些文件被修改
  • 哪些文件已加入暂存区
  • 哪些文件是未跟踪文件

2. 查看提交历史

gitloggitlog --oneline --graph --decorate

用途:

  • 查看提交记录
  • 分析历史版本
  • 配合 Git Graph 使用

3. 查看代码差异

gitdiff# 工作区 vs 暂存区gitdiff--staged# 暂存区 vs 最近一次提交gitdifffile.cpp# 指定文件差异

用途:

  • 在提交前确认具体改了什么

三、暂存区操作(add / reset)

1. 添加文件到暂存区

gitaddfile.cppgitadddir/gitadd.
推荐用法(精细控制):
gitadd-p

作用:

  • 按代码块逐段选择是否加入暂存区
  • 非常适合团队协作

2. 取消 add(撤销暂存)

gitresetgitreset file.cpp

说明:

  • 不删除代码
  • 只是把文件从暂存区移回工作区

四、提交代码(commit)

1. 普通提交

gitcommit -m"commit message"

2. 提交全部已修改文件(不推荐常用)

gitcommit -a -m"message"

建议:commit 信息要清晰描述做了什么,便于团队理解。


五、远程仓库操作(Gitee / GitHub)

1. 查看远程仓库

gitremote -v

2. 添加远程仓库

gitremoteaddorigin https://gitee.com/xxx/project.git

3. 推送代码

gitpushgitpush -u origin mastergitpush -u origin main

说明:

  • -u:建立本地分支与远程分支的关联

4. 拉取远程代码

gitpullgitpull --rebase

推荐使用:

  • git pull --rebase(提交历史更干净)

六、分支管理(团队协作必备)

1. 查看分支

gitbranchgitbranch -a

2. 创建并切换分支

gitcheckout -b feature_xgitswitch -c feature_x

3. 切换分支

gitcheckout mastergitswitch master

4. 删除分支

gitbranch -d feature_x

七、冲突处理与 rebase

1. 使用 rebase 拉取远程代码

gitpull --rebase

2. 解决冲突流程

gitadd.gitrebase --continue

3. 放弃 rebase

gitrebase --abort

八、临时保存修改(stash)

1. 保存当前修改

gitstash

2. 恢复修改

gitstash pop

3. 查看 stash 列表

gitstash list

适用场景:

  • 拉代码前本地还有未完成修改

九、撤销与回退(慎用)

1. 丢弃工作区修改

gitrestore file.cppgitrestore.

2. 回退到某个提交(危险)

gitreset --hard commit_id

十、问题定位相关命令

1. 查看某文件的提交历史

gitlog file.cpp

2. 查看每一行是谁改的

gitblame file.cpp

十一、推荐的日常标准工作流(总结)

gitstatusgitadd-pgitcommit -m"清晰的提交说明"gitpull --rebasegitpush

十二、学习总结要点

  1. 任何操作前,先看git status
  2. 尽量少用git add .,多用git add -p
  3. 团队协作优先使用pull --rebase
  4. 不确定时,不要使用push -f

十三、真实踩坑记录(实战经验总结)


踩坑 1:git push提示 non-fast-forward 被拒绝

现象 / 报错:

! [rejected] master -> master (non-fast-forward) error: 无法推送一些引用到远程仓库

原因:

  • 远程分支已有新提交(如 README、他人提交)
  • 本地分支落后于远程分支

错误做法:

gitpush -f# ⚠ 覆盖远程,团队协作中非常危险

正确做法(推荐):

gitpull --rebase origin mastergitpush

踩坑 2:git pull --rebase提示有未暂存修改

报错信息:

error: 不能变基式拉取:您有未暂存的变更

原因:

  • 工作区有修改但未提交
  • Git 不允许在脏工作区执行 rebase

正确解决方案(最安全):

gitstashgitpull --rebasegitstash pop

踩坑 3:执行了git add .,但想只提交部分文件

问题:

  • 不小心把所有文件 add 进暂存区

解决方法:

gitreset# 取消全部暂存gitaddfile1.cpp# 重新选择需要提交的文件

经验总结:

  • 团队开发中,优先使用git add -p

踩坑 4:文件内容明明不一样,但git diff file.cpp无输出

常见原因:

  1. 文件其实没有被 Git 跟踪
  2. 对比的不是当前分支的内容
  3. VS Code 中的文件未保存到磁盘

排查命令:

gitls-files|grepfile.cppgitdiff--name-statusgitstatus

踩坑 5:git add 文件.*没有效果,暂存区看不到文件

原因:

  • 文件没有任何修改
  • Git 只会暂存“发生变化”的文件

验证方式:

gitdiff文件名

结论:

没有 diff,就没有 add,也不会产生 commit。


踩坑 6:VS Code Git Graph 打不开(Webview / ServiceWorker 报错)

典型报错:

Could not register service worker: InvalidStateError

原因:

  • VS Code Webview Service Worker 在部分 Linux 环境异常

解决方式(settings.json):

"webview.experimental.enableServiceWorkers":false

然后重启 VS Code。


踩坑 7:stash 之后忘了恢复代码

现象:

  • git stash后感觉代码“丢了”

解决:

gitstash listgitstash pop

经验:

stash 不会丢代码,只是临时存放。


踩坑 8:误用git reset --hard

后果:

  • 工作区和暂存区修改全部丢失

原则:

  • 非必要不使用--hard
  • 不熟悉 commit_id 时禁止使用

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/1 16:17:43

解决facefusion报错No source face detected

解决 FaceFusion 报错:No source face detected 在使用 FaceFusion 进行人脸替换时,你是否曾满怀期待地运行命令,结果却只等来一句冰冷的提示: No source face detected程序戛然而止,换脸流程中断。这并非模型崩溃或内…

作者头像 李华
网站建设 2026/3/4 19:30:35

PaddleOCR中英文文字识别实战与优化指南

PaddleOCR中英文文字识别实战与优化指南 在数字化浪潮席卷各行各业的今天,从发票扫描到证件识别,从智能办公到工业质检,光学字符识别(OCR)已成为连接物理世界与数字系统的关键桥梁。然而,面对复杂多变的实…

作者头像 李华
网站建设 2026/3/2 16:58:52

LobeChat剪贴板交互优化:复制粘贴操作更加流畅自然

LobeChat剪贴板交互优化:复制粘贴操作更加流畅自然 在今天这个信息流转极快的时代,我们每天都在不同应用之间复制、粘贴——从技术文档中摘取一段代码,从网页上抓取一个问题描述,再粘贴进AI助手对话框寻求解答。这一看似简单的动作…

作者头像 李华
网站建设 2026/2/26 1:47:45

YOLOv5详解:高效目标检测模型实战指南

YOLOv5详解:高效目标检测模型实战指南 在自动驾驶的感知系统中,一帧图像需要在几十毫秒内完成对行人、车辆、交通标志等数十类目标的精准识别;在智能工厂的质检线上,摄像头每分钟要处理上千张产品图像,任何延迟都会导…

作者头像 李华
网站建设 2026/2/26 22:58:49

Windows下PaddleOCR GPU版环境搭建指南

Windows下PaddleOCR GPU版环境搭建指南 在做AI项目时,最让人头疼的往往不是模型设计,而是环境配置——尤其是当你想用GPU加速一个OCR工具,却发现卡在第一步。如果你正打算在Windows上部署PaddleOCR并启用GPU支持,这篇文章就是为你…

作者头像 李华