git 的常用指令

发布于:2025-04-09 ⋅ 阅读:(43) ⋅ 点赞:(0)

以下是 Git 命令分类大全,覆盖日常开发、团队协作和高级操作场景,按功能分类整理:


一、配置与初始化

命令 说明
git config --global user.name "Your Name" 设置全局用户名
git config --global user.email "email@example.com" 设置全局邮箱
git config --global core.editor "vim" 设置默认编辑器
git config --list 查看所有配置
git init 初始化本地仓库
git clone <repo_url> 克隆远程仓库到本地

二、文件操作

命令 说明
git add <file> 添加文件到暂存区
git add . 添加所有修改到暂存区
git rm <file> 删除文件并加入暂存区
git mv <old> <new> 重命名文件并加入暂存区
git restore <file> 撤销工作区未暂存的修改(Git 2.23+)
git restore --staged <file> 撤销暂存区的修改(保留工作区)

三、提交与历史

命令 说明
git commit -m "message" 提交暂存区内容
git commit --amend 修改最后一次提交信息或内容
git log 查看提交历史
git log --oneline --graph 简洁版提交历史(含分支图)
git reflog 查看所有操作历史(包括被删除的提交)

四、分支管理

命令 说明
git branch 查看本地分支
git branch -a 查看所有分支(本地+远程)
git switch <branch> 切换分支(Git 2.23+推荐)
git switch -c <new-branch> 创建并切换分支
git merge <branch> 合并指定分支到当前分支
git rebase <branch> 变基(重写提交历史)
git branch -d <branch> 删除已合并的分支
git branch -D <branch> 强制删除未合并的分支

五、远程仓库

命令 说明
git remote -v 查看远程仓库地址
git remote add origin <url> 关联远程仓库
git fetch 拉取远程仓库元数据(不自动合并)
git pull 拉取并合并远程代码(相当于 git fetch + merge
git push origin <branch> 推送本地分支到远程
git push -u origin <branch> 首次推送并关联远程分支
git push --force 强制推送(覆盖远程历史,慎用!)

六、撤销与回退

命令 说明
git reset --soft HEAD^ 回退到上一提交,保留修改到暂存区
git reset --hard HEAD^ 彻底回退到上一提交(丢弃所有修改)
git revert <commit> 生成新提交来撤销指定提交(安全回退)
git checkout HEAD -- <file> 丢弃工作区某文件的修改

七、标签管理

命令 说明
git tag 查看所有标签
git tag v1.0.0 创建轻量标签
git tag -a v1.0.0 -m "message" 创建带注释的标签
git push origin --tags 推送所有标签到远程
git tag -d v1.0.0 删除本地标签

八、储藏与临时工作

命令 说明
git stash 临时储藏当前工作区修改
git stash list 查看储藏列表
git stash pop 恢复最新储藏并删除记录
git stash apply 恢复储藏但不删除记录

九、子模块(Submodule)

命令 说明
git submodule add <repo_url> 添加子模块
git submodule update --init --recursive 初始化并更新子模块

十、高级操作

命令 说明
git cherry-pick <commit> 复制指定提交到当前分支
git bisect start 使用二分法定位问题提交
git blame <file> 查看文件的逐行修改记录
git clean -fd 删除未跟踪的文件和目录

十一、常见问题处理

1. 冲突解决
# 手动解决冲突后执行:
git add .
git commit -m "Resolved conflict"
2. 找回被删除的提交
git reflog                  # 找到丢失的提交哈希
git reset --hard <commit>   # 恢复到该提交
3. 清理历史大文件
git filter-branch --tree-filter 'rm -f bigfile' HEAD  # 从历史中永久删除文件

十二、常用别名设置(.gitconfig

[alias]
  co = checkout
  br = branch
  ci = commit
  st = status
  lg = log --oneline --graph --decorate
  last = log -1 HEAD

注意事项

  1. 危险操作reset --hardpush --force 可能导致数据丢失,需谨慎使用。
  2. 分支规范:推荐使用 feature/xxxhotfix/xxx 等命名约定。
  3. 定期同步:频繁执行 git fetch 保持本地与远程信息同步。

结合 GUI 工具(如 VS Code、GitKraken)可提升效率,但掌握命令行是核心能力!


网站公告

今日签到

点亮在社区的每一天
去签到