当前位置: 首页 > news >正文

【Git】Git 常用指令

文章目录

      • 一、 核心三步曲(最常用)
        • 1. `git status` - 查看状态
        • 2. `git add` - 添加到暂存区
        • 3. `git commit` - 提交到本地仓库
      • 二、 完整提交流程示例
      • 三、 进阶与实用技巧
        • 1. 查看提交历史
        • 2. 撤销操作(非常重要!)
        • 3. 暂存工作(Stashing)
      • 四、 提交到远程仓库
      • 五、 良好的提交信息规范
      • 总结(速查表)

一、 核心三步曲(最常用)

这是 Git 提交代码最基本、最核心的流程,请务必牢记。

1. git status - 查看状态

作用:查看当前工作目录和暂存区的状态。它会告诉你哪些文件被修改了、哪些是新文件、哪些文件已经放入了暂存区。
使用场景:在任何操作前后,都可以用这个命令来确认当前的状态,避免误操作。

# 查看简洁状态
git status
# 查看更详细的状态(包括文件被修改、删除的具体操作)
git status -s  # 或 git status --short
2. git add - 添加到暂存区

作用:将工作目录中的修改(新增、修改、删除)添加到暂存区。暂存区是一个准备提交的文件列表。
使用场景:在你完成了一部分代码修改后,需要将这些修改“标记”为待提交状态。

# 添加单个文件
git add <filename>
# 添加多个文件
git add <filename1> <filename2>
# 添加当前目录下的所有修改(包括新文件和修改过的文件,但不包括被删除的文件)
git add .
# 添加所有修改(包括被删除的文件,更常用)
# 这是一个“万能”添加命令,它会将所有已跟踪和未跟踪的修改都加入暂存区
git add -A  # 或 git add --all
# 交互式添加,可以一个一个文件地选择是否添加
git add -i
3. git commit - 提交到本地仓库

作用:将暂存区中的所有文件作为一个快照,永久保存到本地仓库中。每次提交都会生成一个唯一的 ID(Commit Hash)。
使用场景:当你认为暂存区中的修改已经构成一个逻辑完整的单元时,就可以提交了。

# 提交,并打开默认的文本编辑器(如 Vim)来编写提交信息
git commit
# 提交,并在命令行中直接输入提交信息(最常用)
# -m 是 "message" 的缩写
git commit -m "你的提交信息"
# 提交,并跳过对暂存区的检查,直接将所有**已跟踪**文件的修改提交
# 注意:它不会提交未被 Git 跟踪的新文件(Untracked files)
# 这个命令相当于 `git add -u` + `git commit -m "..."`,非常方便!
git commit -am "你的提交信息"  # 或 git commit -a -m "..."
# 修改最后一次提交(非常有用!)
# 如果提交后发现信息写错了,或者漏了某个文件,可以用这个命令
# 它会打开编辑器让你修改提交信息,并且不会产生新的提交记录
git commit --amend
# 修改最后一次提交,并且直接在命令行修改信息
git commit --amend -m "新的、正确的提交信息"

二、 完整提交流程示例

假设你修改了 index.htmlstyle.css 两个文件。

# 1. 首先查看状态,确认哪些文件被修改了
$ git status
On branch main
Your branch is up to date with 'origin/main'.
Changes not staged for commit:(use "git add <file>..." to update what will be committed)(use "git restore <file>..." to discard changes in working directory)modified:   index.htmlmodified:   style.css
no changes added to commit (use "git add" and/or "git commit -a")
# 2. 将这两个文件添加到暂存区
$ git add index.html style.css
# 3. 再次查看状态,确认文件已在暂存区
$ git status
On branch main
Your branch is up to date with 'origin/main'.
Changes to be committed:(use "git restore --staged <file>..." to unstage)modified:   index.htmlmodified:   style.css
# 4. 提交到本地仓库,并附上有意义的提交信息
$ git commit -m "优化首页布局和样式"
[main 1a2b3c4d] 优化首页布局和样式2 files changed, 15 insertions(+), 7 deletions(-)
# 5. 提交后,再次查看状态,工作目录是干净的
$ git status
On branch main
Your branch is ahead of 'origin/main' by 1 commit.(use "git push" to publish your local commits)
nothing to commit, working tree clean

三、 进阶与实用技巧

1. 查看提交历史
# 查看提交历史列表
git log
# 查看简洁的提交历史(单行显示)
git log --oneline
# 查看最近 N 次的提交
git log -n 3
# 查看某个文件的修改历史
git log -p <filename>
# 以图形化的方式查看分支历史(非常直观)
git log --graph --oneline --all
2. 撤销操作(非常重要!)
# 情况1:文件修改了,但还没 add。想撤销修改,恢复到上次提交时的状态。
git checkout -- <filename>  # (旧版命令)
git restore <filename>      # (新版推荐命令)
# 情况2:文件已经 add 到暂存区,但想把它从暂存区移除。
git reset HEAD <filename>   # (旧版命令)
git restore --staged <filename> # (新版推荐命令)
# 情况3:已经 commit 了,但想撤销这次提交。
# 注意:这会撤销提交,但代码的修改会保留在工作目录,相当于 "反提交"。
git reset HEAD~1
# 情况4:已经 commit 了,想彻底丢弃这次提交和它的所有修改(危险操作!)。
# 这会重置你的工作目录到上一次提交的状态,所有修改都会丢失!
git reset --hard HEAD~1
3. 暂存工作(Stashing)

当你正在开发一个新功能,突然需要紧急修复一个 Bug,但手头的代码还没写完,不想 commit。这时可以用 stash

# 将当前所有未提交的修改(工作区和暂存区)暂存起来,并清空工作区
git stash
# 查看所有暂存列表
git stash list
# 恢复最新的暂存,并从列表中删除
git stash pop
# 恢复指定的暂存(stash@{0} 是 stash list 中的编号)
git stash pop stash@{0}
# 仅恢复暂存,不从列表中删除
git stash apply

四、 提交到远程仓库

以上所有操作都是在你的本地仓库完成的。当你需要将代码分享给团队或同步到远程服务器(如 GitHub, GitLab)时,需要使用 push

# 将本地分支的提交推送到远程仓库的同名分支
# -u 参数会将本地分支与远程分支关联起来,下次就可以直接用 git push 了
git push -u origin <branch_name>
# 例如,推送到 main 分支
git push -u origin main
# 如果已经关联过,直接使用
git push
# 强制推送(会覆盖远程分支历史,非常危险!除非你确定你在做什么)
git push --force origin <branch_name>

五、 良好的提交信息规范

好的提交信息能让团队协作更高效,也方便自己日后回溯。推荐使用 Conventional Commits 规范:
格式<类型>(<可选的作用域>): <描述>

  • 类型:说明提交的性质,常用:
    • feat: 新功能
    • fix: 修复 Bug
    • docs: 文档更新
    • style: 代码格式修改(不影响功能)
    • refactor: 重构(既不是新功能,也不是修复 Bug)
    • test: 增加或修改测试
    • chore: 构建过程或辅助工具的变动
  • 作用域(可选):说明影响范围,如 login, header, api 等。
  • 描述:简洁明了地描述做了什么,使用祈使句(如 “添加用户登录功能” 而不是 “添加了用户登录功能”)。
    示例
git commit -m "feat(auth): 添加用户登录和注册功能"
git commit -m "fix(api): 修复获取用户列表接口的参数错误"
git commit -m "docs(readme): 更新项目安装说明"
git commit -m "style(button): 统一按钮组件的样式"

总结(速查表)

目的命令
查看状态git status
添加文件到暂存区git add <file> / git add . / git add -A
提交暂存区文件git commit -m "信息"
添加并提交(已跟踪文件)git commit -am "信息"
修改最后一次提交git commit --amend
查看提交历史git log / git log --oneline
撤销工作区修改git restore <file>
撤销暂存区修改git restore --staged <file>
暂存当前工作git stash
恢复暂存的工作git stash pop
推送到远程仓库git push / git push origin <branch>
希望这份指南对你有帮助!从核心三步曲开始,多加练习,就能熟练掌握 Git 的提交操作。
http://www.dtcms.com/a/356014.html

相关文章:

  • 使用华为 USG6000防火墙配置安全策略
  • 今日行情明日机会——20250828
  • 驾驭巨量数据:HTTP 协议与大文件传输的多种策略
  • 【Python开源环境】Anaconda/Miniconda
  • 印度尼西亚数据源 PHP 对接文档
  • 从零搭建安全帽检测(8)— 泛化性检验:构建独立测试集与模型性能公正评估
  • 动态加载和异步调用tasklet/workqueue day63 ay64
  • 卷积神经网络搭建及应用
  • 对象之间属性拷贝(Bean Mapping)的工具MapStruct 和 BeanUtils
  • 多据点协作下的数据库权限与版本管理实战
  • BeforeEach与AfterEach注解的使用
  • React学习教程,从入门到精通, ReactJS - 安装:初学者指南(3)
  • iPhone17新品曝光!未来已来主题发布会即将登场
  • CSS入门学习
  • Vim 相关使用
  • Dify 从入门到精通(第 61/100 篇):Dify 的监控与日志分析(进阶篇)
  • 笔记本电脑蓝牙搜索不到设备-已解决
  • LoRA加入嵌入层、及输出头解析(63)
  • 实测阿里图像编辑模型Qwen-Image-Edit:汉字也能无痕修改(附实测案例)
  • 【 MYSQL | 基础篇 函数与约束 】
  • 响应式编程之Flow框架
  • cmd 中设置像 linux 一样设置别名(alias)
  • Xshell自动化脚本大赛实战案例及深度分析
  • 谷歌RecLLM,大模型赋能对话推荐算法系统
  • TUN模式端口冲突 启动失败如何解决?
  • hintcon2025No Man‘s Echo
  • 【Web安全】反序列化安全漏洞全解析:从原理到实战测试指南
  • Vue3 Pinia 中 store.$dispose()的用法说明
  • Vue3组件加载顺序
  • vue项目运行后自动在浏览器打开