【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.html
和 style.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
: 修复 Bugdocs
: 文档更新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 的提交操作。 |