尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Git 命令
Git 命令1. git stash2. git cherry3. git cherry-pick4. git pull VS git pull --rebase5. git commit --amend6. tag相关6.1 创建 tag6.2 推送 tag6.3 删除tag6.4 查看tag1. git stash1.1 基本保存修改gitstash 或gitstash push-m描述你的修改1.2 查看存储的修改列表gitstash list1.3 恢复存储的修改# 恢复最近的一次stash并从stash列表中删除gitstash pop# 恢复指定stash不删除gitstash apply stash{1}# 恢复并删除指定stashgitstash pop stash{1}1.4 删除存储# 删除最近的一次gitstash drop# 删除指定的stashgitstash drop stash{1}# 删除所有stashgitstashclear1.5 高级使用# 只stash未暂存的文件不包括已暂存的gitstash --keep-index# 包含未跟踪的文件gitstash-u# 查看stash内容差异gitstash show-pstash{0}2. git cherry2.1 功能用来比较当前分支和某个上游分支的提交差异列出当前分支中哪些提交还没有被包含在上游分支中。它特别适合用来判断哪些提交还没被推送或合并。2.2 语法gitcherryupstream[head]# 输出结果含义commit_hash# 该提交存在于 HEAD 分支但 upstream 中不存在-commit_hash# 提交在 HEAD 分支存在但内容等效提交已在 upstreamupstream基准分支通常是 main 或 masterhead要比较的分支默认是当前分支2.3 示例# 假设分支情况main: A---B---C feature: A---B---D---E# 如果在 feature 分支执行gitcherry main# 可能会输出 ddddddd eeeeeee# 含义 表示这个提交在 feature 中有但 main 中没有 - 表示这个提交的内容在 main 中已经存在即使 commithash不同3. git cherry-pick3.1 功能把一个或多个已有提交复制到当前分支上内容会被重新应用产生新的 commit hash。3.2 语法gitcherry-pickcommit_hash...# commit_hash要复制的提交 ID可以多个# 支持区间gitcherry-pick A..B# 不包含 A包含 Bgitcherry-pick A^..B# 包含 A 到 B3.3 常用选项-x在提交信息里添加原始 commit hash-n/--no-commit只应用更改不提交--abort中止正在进行的 cherry-pick--continue冲突解决后继续3.4 使用场景# 1.从另一个分支提取单个 bug 修复gitcheckout release-branchgitcherry-pick 1a2b3c4# 2.把一系列功能提交移到新分支gitcherry-pick 1234abcd..5678efgh# 一次pick多个commitgitcherry-pick commit1_hash commit2_hash commit3_hash# 连续区间gitcherry-pick commit1_hash^..commit3_hash# 意思是从 commit1 到 commit3包含 commit1、commit2、commit3。3.5 示例# 假设分支情况main: A---B---C feature: B---D---E# 如果你在 feature 分支上的 D 修复了 bug需要把它加到 main 上gitcheckout main# 切到 main 分支gitcherry-pickD的commit哈希# 挑出 D 提交# 执行后 main 会变成main: A---B---C---D # 注意D是新的 commit哈希值不同于 D但更改内容相同。4. git pull VS git pull --rebase4.1 概览git pullgit fetchgit merge把远程变更合并到当前分支可能产生 merge commit。git pull --rebasegit fetchgit rebase把本地提交“挪到”远程最新提交之后重放你的提交不产生额外的 merge commit历史更线性。4.2 场景图# 假设初始共同基点为 O O ├─ C (remote) ├─ D (remote) └─ A (local) └─ B (local) # 方式一git pullmerge # 1. git fetch origin # 2. git merge origin/branch # 结果产生 merge commit M O --- C --- D (origin) \ \ A --- B --- M (local after merge) # 方式二git pull --rebase # 1. git fetch origin # 2. git rebase origin/branch 把 A,B 变为 A,B放到 D 后 # 结果线性历史 O --- C --- D --- A --- B (local after rebase) # 没有 M历史线性、干净。4.3 详细比较优缺点1. merge默认git pull优点不改写历史安全适合共享分支比如 main、develop直接多人协作。保留合并上下文谁与谁合并什么时候做的 merge commit。缺点历史可能有很多 merge commit阅读 git log 时不够干净。不方便做 git bisect 或查看线性变更序列。2. rebasegit pull --rebase优点历史线性、干净容易阅读与审查git log --oneline --graph更直观。更好地将你的更改“紧跟”在最新基点之后便于生成干净的 PR。缺点会改写本地提交历史产生新的 commit hash。如果这些本地提交已经被别人基于或推送到共享远程rebase 会导致问题。对于已经公开的提交不要随意 rebase除非你能强推并确认不会破坏他人的工作。4.4 常见命令与等价关系# merge pull默认gitpull origin develop# git fetch origin develop ; git merge origin/develop# rebase pullgitpull--rebaseorigin develop# git fetch origin develop ; git rebase origin/develop# 也可以分步做便于控制gitfetch origingitrebase origin/develop# 或 mergegitmerge origin/develop4.5 冲突处理rebase 与 merge 都会冲突但处理命令不同1. rebase 时遇到冲突# 出现冲突后gitstatus# 查看冲突文件# 手动修改冲突文件解决后gitaddfilegitrebase--continue# 若放弃 rebasegitrebase--abort# 若跳过当前补丁不推荐随便用gitrebase--skip2. merge 时遇到冲突# 编辑冲突文件后gitaddfilegitcommit# 完成 merge 的 commit# 若放弃 mergegitmerge--abort4.6 如果你已经 rebase 但想推到远程rebase 会改变 commit id因此若以前这些 commit 已经推送到远程需要强推危险gitpush --force-with-lease--force-with-lease比--force更安全会在远程被他人更新时拒绝推送避免覆盖别人的提交。4.7 保留合并结构的 rebase如果本地提交包含合并merge commit并想在重放时保留这些合并结构可使用gitrebase --rebase-merges origin/develop# 或gitpull--rebasemerges origin develop4.8 技巧# 查看 rebase 是否成功gitlog--oneline--graph--decorate# 恢复被 rebase 改写的历史reflog 很重要gitreflog# 找到原来的 HEAD例如 HEAD{3}gitcheckout-bold-head HEAD{3}5. git commit --amendgit commit --amend用于修改最近一次提交last commit。它可以修改提交信息也可以将新的文件修改合并到上一次提交中。6. tag相关6.1 创建 tag// 1. 单个分支创建tag// 方式 1git tag v1.0.0// 方式 2附注标签推荐git tag-a v1.0.0-mrelease version 1.0.0// 2. repo 多分支创建tag// 方式 1附注分支repo forall-c echo $REPO_PATHgit tag-arelease_v3.2.11-mrelease_v3.2.11// 方式 2repo forall-c git tag-arelease_v3.2.11-mrelease_v3.2.116.2 推送 tag// 1. 单分支推送taggit push origin v1.0.0// 2. 单分支推送所有本地taggit push origin--tags// 3. 推送所有本地分支tagrepo forall-c git push originrelease_v3.2.116.3 删除tag// 1. 单分支删除本地taggit tag-d v1.0.0// 2. 单分支删除远程taggit push origin--deletev1.0.0// 3. repo多分支删除本地tagrepo forall-c git tag-d release_v3.2.112/dev/null||true// 4. repo多分支删除远程tagrepo forall-c git push origin--deleterelease_v3.2.112/dev/null||true6.4 查看tag// 1. 查看tag是否创建成功repo forall-c echo $REPO_PATHgit tag--listrelease_v3.2.11// 2. 查看单分支所有taggit tag// 3. 查看多分支所有tagrepo forall-c echo $REPO_PATH git tag--list
RELATED

相关推荐

【EKF、UKF、PF、EPF、UPF】改进的粒子滤波算法及其应用研究(Matlab代码实现)

【EKF、UKF、PF、EPF、UPF】改进的粒子滤波算法及其应用研究(Matlab代码实现)

👨‍🎓个人主页 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰&a…

📅 2026/9/12 8:02:46
手表app开发实战项目选型:避开技术栈、兼容性与调试三大坑

手表app开发实战项目选型:避开技术栈、兼容性与调试三大坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/9/12 8:02:46
Windows免驱使用slcan,使用方法以使用cangaroo为例

Windows免驱使用slcan,使用方法以使用cangaroo为例

SLCAN (Serial Line CAN Interface)是一种将串口转换为CAN接口的协议,允许通过串口设备发送和接收CAN报文 。 ‌我们需要使用cangaroo上位机进行CAN报文收发,需要注意:因上位机走的串口模式收发CAN数据,一旦…

📅 2026/9/12 8:02:46
MORE NEWS

更多资讯

📰

go2rtc 入门教程:5 分钟搭建低延迟摄像头流媒体服务器

go2rtc 入门教程:5 分钟搭建低延迟摄像头流媒体服务器 【免费下载链接】go2rtc Ultimate camera streaming application 项目地址: https://gitcode.com/GitHub_Trending/go/go2rtc go2rtc 是一个用 Go 编写的零依赖摄像头串流应用,能把 RTSP、RT…

📰

如何用 Qwen3-Coder 与 Milvus 在 ai-engineering-hub 跑通代码问答应用?

如何用 Qwen3-Coder 与 Milvus 在 ai-engineering-hub 跑通代码问答应用? 【免费下载链接】ai-engineering-hub In-depth tutorials on LLMs, RAGs and real-world AI agent applications. 项目地址: https://gitcode.com/GitHub_Trending/ai/ai-engineering-hub …

📰

本地化AI研究工作流:用Python构建私有RAG文档分析系统

1. 这不是一份AI行业分析报告,而是一次真实的工作流切片 “用 WorkBuddy 研究腾讯、阿里和 DeepSeek,我没敢直接说「AI 很赚钱」”——这个标题刚在内部分享会上念出来,会议室里有三个人笑了,两个低头记笔记,还有一个把…

📰

在 awesome-copilot 中使用 /acreadiness-assess 评估仓库 AI 就绪度:AgentRC 9 支柱成熟度模型与静态报告生成实战

在 awesome-copilot 中使用 /acreadiness-assess 评估仓库 AI 就绪度:AgentRC 9 支柱成熟度模型与静态报告生成实战 【免费下载链接】awesome-copilot Community-contributed instructions, agents, skills, and configurations to help you make the most of GitHu…

📰

工控机NPU与PMT驱动安装全指南:从硬件识别到故障排查

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

Valhalla静态审阅Qwen3源码:大厂基础设施的工程启示

Valhalla 静态工程审阅 #023来了。这一期拖了很久,一直在等一个合适的开源项目,不想为凑更新随便拿个小库水一期,干脆等到了 Qwen3 的官方仓库结构全面稳定下来,才动手做这轮源码证据驱动的评测。这一期和之前最大的不同在于一个大…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬