Git 常用命令集与实际使用 Demo

Git 常用命令集与实际使用 Demo

一、初始化 & 配置

命令 说明 Demo
git init 在当前目录初始化本地 Git 仓库,生成 .git/ 文件夹 mkdir newProject && cd newProject git init
git config --global user.name "xxx" 设置全局用户名 git config --global user.name "Alice"
git config --global user.email "[email protected]" 设置全局用户邮箱 git config --global user.email "[email protected]"
git config --global color.ui true 为命令行输出自动着色,提高可读性 git config --global color.ui true
git config --global --unset http.proxy 移除全局 HTTP 代理配置 git config --global --unset http.proxy

1. 说明

  • 若要对单个仓库而不是全局生效,可在该项目目录下去掉 --global 选项。
  • 可用 git config --list 查看当前所有 Git 配置项。

二、仓库克隆 & 远程关联

命令 说明 Demo
git clone 克隆远程仓库到本地 git clone [email protected]:username/repo.git
git remote add origin 将本地仓库与远程 建立关联,通常命名为 origin git remote add origin [email protected]:username/repo.git
git remote -v 查看当前仓库的远程地址配置 git remote -v
git fetch <remote_repo_name> 从远程仓库获取更新,但与本地分支合并 git fetch origin
git pull <remote_repo_name> <branch_name> 拉取远程 <branch_name> 并合并到当前分支 git pull origin master
git push [--set-upstream] <remote_repo_name> <branch_name> 将本地分支推送到远程分支(首次推送可用 -u/--set-upstream 绑定默认远程追踪) git push -u origin dev
git push -f origin master 强制推送到远程仓库,覆盖远程已有提交,需谨慎 git push -f origin master
git push origin :<branch_name> 删除远程分支 <branch_name> git push origin :dev-feature
git init + git remote add ... + git push -u origin master 从零开始创建仓库并推送到远程 git init git remote add origin [email protected]:username/repo.git git push -u origin master

三、提交、暂存 & 推送

命令 说明 Demo
git add / git add . 将指定文件或当前目录下所有修改放入暂存区(Stage) git add index.html git add .
git commit -m "commit message" 提交暂存区到本地仓库 git commit -m "Add new feature"
git commit --amend -m "new message" 修改上一次提交,常用于补充或修正 git commit --amend -m "Adjust last commit message"
git commit -am "message" 将已跟踪过的文件直接从工作区到提交;相当于 git add + git commit 一步完成 git commit -am "Fix bug and commit"
git status 查看当前工作区和暂存区的状态 git status
git push 将本地分支提交推送到远程 git push origin feature-login
git push -u origin master 首次推送并将 master 绑定到远程追踪分支 git push -u origin master
git push -f origin master 强制推送覆盖远程提交,谨慎使用 git push -f origin master

四、分支操作

1. 创建 & 切换 & 查看

命令 说明 Demo
git branch <branch_name> 创建新分支,但切换到该分支 git branch hotfix-login
git checkout <branch_name> 切换到已有分支 git checkout master
git checkout -b <branch_name> 新建并切换到 <branch_name> 分支 git checkout -b feature-cart
git branch -a 查看所有分支(包含本地和远程) git branch -a
git branch -r 只看远程分支 git branch -r
git branch -v 查看各分支的最后一次提交信息 git branch -v
git branch --merged / --no-merged 查看哪些分支已合并 / 未合并到当前分支 git branch --merged git branch --no-merged
git checkout -b newBrach origin/master 基于远程 origin/master 创建并切换到 newBrach git checkout -b release-1.0 origin/master

2. 删除 & 重命名

命令 说明 Demo
git branch -d <branch_name> 删除本地分支,只能删除已合并到其他分支或 HEAD 的分支 git branch -d hotfix-login
git branch -D <branch_name> 强制删除本地分支,即使未合并 git branch -D feature-experiment
git push origin :<branch_name> 删除远程分支 git push origin :feature-old
git branch -m 本地分支改名 git branch -m master master_backup
git checkout -b sf origin/serverfix 在本地创建并切换到分支 sf,并跟踪远程 origin/serverfix git checkout -b sf origin/serverfix
git checkout --track origin/serverfix 简写形式,让本地分支自动追踪远程 serverfix git checkout --track origin/serverfix

3. 常见工作流程示例

3.1. 示例:
  • 在自己工作分支(如 mybranch)进行开发
  • 突然有新需求,需要先切到 product 分支:
git 复制代码
git checkout product
  • 为新需求新建分支 issueXXXX 并切换到该分支,完成开发测试:
git 复制代码
git checkout -b issueXXXX
# ... coding ...
git commit -am "Fix issueXXXX"
  • 切回生产环境分支 product,把 issueXXXX 合并进来:
git 复制代码
git checkout product
git merge issueXXXX
# 解决冲突后 git add 冲突文件 && git commit
git push origin product
  • 切回 mybranch 继续原工作:
git 复制代码
git checkout mybranch

五、合并 (Merge)、Rebase、Cherry-pick

1. Merge

命令 说明 Demo
git merge 将 分支合并到当前分支,产生合并提交 (若有冲突需手动解决) git checkout master git merge dev
git merge origin/master 合并远程 master 分支到当前分支 git checkout dev git merge origin/master

冲突解决流程

  • Git 提示冲突,编辑冲突文件并手动修正,保留正确代码。
  • git add 将已解决冲突的文件加入暂存区。
  • git commit 提交合并结果。

2. Rebase

命令 说明 Demo
git rebase 将当前分支基于 最新提交进行重放,形成线性历史 git checkout feature git rebase master
git rebase -i 交互式 rebase,可修改/合并/删除提交 git checkout feature git rebase -i master
git rebase --continue 解决冲突后,继续 rebase git add . git rebase --continue
git rebase --abort 放弃当前 rebase 操作,回到开始 rebase 之前的状态 git rebase --abort

注意:Rebase 会重写提交哈希,若已推送到公共仓库请谨慎使用。

3. Cherry-pick

命令 说明 Demo
git cherry-pick 将指定的 提交复制到当前分支 (新提交哈希) git checkout master git cherry-pick abc123
git cherry-pick 一次性复制多个提交 git cherry-pick 123abc 456def
git cherry-pick A...B 复制从 A(不含)到 B(含)的所有提交 git cherry-pick v1.0...v2.0
git cherry-pick --continue / --abort / --quit 在出现冲突时,--continue 继续 / --abort 放弃 / --quit 退出但保留已修改内容 git cherry-pick --continue git cherry-pick --abort

六、回退、重置、撤销

命令 说明 Demo
git checkout 暂时切换到指定版本(处于"游离 HEAD"状态),并未移动任何分支指针 git checkout 123abc # HEAD is now at commit 123abc
git reset --hard 将当前分支 HEAD 移动到 ,工作区也会回退到对应版本 git reset --hard 123abc
git revert 生成一次新的提交,用来"撤销" 对应的改动,但会抹掉历史 git revert abc123 git commit -m "Revert commit abc123"
git push -f origin master 强制推送到远程仓库,覆盖远程历史,需谨慎 git push -f origin master # Overwrites remote master's history

七、标签管理

命令 说明 Demo
git tag 查看当前仓库已有的所有标签 git tag
git tag -a <tag_name> -m "message" 新建带说明的标签(注释标签) git tag -a v1.0 -m "Release v1.0"
git show <tag_name> 查看标签信息对应的提交详情 git show v1.0
git push origin <tag_name> 推送指定标签到远程 git push origin v1.0
git push --tags 一次性推送本地所有标签 git push --tags
git tag -d <tag_name> 删除本地标签 git tag -d v1.0
git push origin :refs/tags/<tag_name> 删除远程标签 git push origin :refs/tags/v1.0

注意:不带 -a 或 -m 的标签为轻量标签,通常推荐使用带注释的标签,以便后续追溯信息。

八、查看日志 & 差异比较

命令 说明 Demo
git log 查看提交日志 git log
git log -n / --stat / --pretty / --graph 多种形式查看日志(限制条数 / 显示变动文件 / 格式化输出 / 图示) git log -5 --stat git log --pretty=oneline --graph
git show 查看指定提交的详细内容 git show 123abc
git diff 显示工作区与暂存区差异 git diff
git diff --cached 显示暂存区与上次提交之间的差异 git diff --cached
git diff origin/master...master 比较远程 master 与本地 master 之间的差异 git diff origin/master...master
git reflog 显示所有引用更新记录(包括回退、分离 HEAD 等操作) git reflog
git show-branch --all 图示所有分支历史 git show-branch --all

九、存储(Stash)

命令 说明 Demo
git stash 将当前未提交的修改暂存起来,使工作区回到干净状态 git stash
git stash list 查看所有 stash 记录 git stash list
git stash show -p stash@{0} 查看某条 stash 详情 git stash show -p stash@{0}
git stash apply stash@{0} 应用某条 stash 到当前工作区 git stash apply stash@{0}
git stash pop 应用最新一次 stash 并删除该 stash 记录 git stash pop

十、其他常用命令

命令 说明 Demo
git mv <old_name> <new_name> 重命名文件,并将该改动记录到暂存区 git mv README.md README_NEW.md
git ls-files 列出本地索引(index)中包含的文件 git ls-files
git whatchanged 显示提交历史对应的文件修改 git whatchanged
git grep "" 在仓库文件中搜索符合 的内容 git grep "delete from"
git gc 进行垃圾回收,清理无引用的对象 git gc
git fsck 验证数据库与树的完整性 git fsck
git format-patch 将两个分支之间的差异导出为 patch 文件 git format-patch master
git push <local_branch>:<remote_branch> 将本地 <local_branch> 推送到远程指定 <remote_branch> git push origin serverfix:awesomebranch
git revert dfb02e6e4f2f7b5 撤销指定提交(会生成一次新提交) git revert dfb02e6e4f2f7b5
git rev-parse v2.0 显示某个 ref (如 tag) 对应的 SHA1 值 git rev-parse v2.0

十一、总结

  • 初始化 & 配置:开始使用前务必设置好用户名、邮箱等。
  • 克隆 & 远程:明确远程仓库地址和分支跟踪关系,方便后续推送、拉取。
  • 分支管理:是 Git 协作核心;快速创建、切换、删除分支,基于远程分支做追踪。
  • 合并 (Merge) / Rebase / Cherry-pick:三种常见"整合"方式,需要理解各自的差异和适用场景。
  • 回退 / 重置 / 撤销:出错时可通过 reset, revert 等命令修正。强制推送需非常谨慎。
  • 查看历史 & 比较差异:log, show, diff, reflog 等命令可帮助排查问题与回溯变动。
  • 标签 & Stash:标签用于标记关键版本,stash 用于暂存工作进度,提升开发便利性。
相关推荐
合合技术团队10 分钟前
TextIn ParseX文档解析参数使用指南(第一期)
大数据·人工智能·算法·ocr·文档解析
小豹子的技术笔记13 分钟前
git在分支上会退到某个指定的commit
git
SelectDB14 分钟前
网易游戏 x Apache Doris:湖仓一体架构演进之路
大数据·数据库·数据分析
吹35度风21 分钟前
Spark-SQL核心编程(二)(三)
大数据·spark
vivo互联网技术1 小时前
Spark on K8s 在vivo大数据平台的混部实战
大数据·spark·容器化
盈达科技1 小时前
盈达科技GEO技术体系全景解密:AIM³ Pro × AICC × GEO-BENCH Pro构建认知主权堡垒
大数据·人工智能
得物技术2 小时前
得物自研DGraph4.0推荐核心引擎升级之路
大数据
normaling2 小时前
Git远端仓库
git
F36_9_2 小时前
如何通过工具实现流程自动化
大数据·人工智能
EasyGBS2 小时前
视频融合平台EasyCVR可视化AI+视频管理系统,打造轧钢厂智慧安全管理体系
大数据·网络·人工智能·音视频