30-seconds-of-code 实战:用 Git 别名(alias)为常用操作打造专属快捷指令
教程文档【免费下载链接】30-seconds-of-codeCoding articles to level up your development skills项目地址https://gitcode.com/gh_mirrors/30/30-seconds-of-code点击查看免费下载Git 别名是 Git 内置的个性化定制能力可以把冗长、复杂的命令压缩成简短易记的快捷键从而降低认知负担、显著提升日常开发效率。本文基于 30-seconds-of-code 仓库中 Git 别名指南 的完整内容深入讲解别名的创建、批量配置、一套可直接复制的实用别名清单并结合仓库内配套的 Git 配置类文章补充别名的列出、覆盖、删除以及默认文本编辑器配置等进阶玩法让读者既能上手实操也能理解背后的配置原理。为什么要使用 Git 别名Git 的常用命令往往存在两种痛点一是命令本身冗长例如git checkout -b、git commit --amend -m每次敲全量命令既费时又容易出错二是复杂操作由多个命令组合而成例如先拉取远端再切换分支需要依次执行git fetch和git checkout心智负担较重。Git 别名正是为解决这两个问题而生的它允许你为任意命令或命令组合创建快捷方式把高频操作收敛成 24 个字母的短命令。正如 aliases.md 中所述就定制化customization而言这是 Git 提供的最强大的特性之一——既能给复杂命令创建快捷键也能让整个工作流更高效。创建别名一条命令搞定创建别名最简单的方式是使用git config命令基本语法如下# Syntax: git config --global alias.alias command--global将别名写入全局配置文件~/.gitconfig对所有仓库生效省略--global则只写入当前仓库的.git/config仅对该仓库生效alias是你要定义的别名名称command是被替代的 Git 子命令如果命令包含空格需要用引号整体包裹。例如把checkout缩短为co把commit -m缩短为cmgit config --global alias.co checkout # Creates an alias co for the checkout command git config --global alias.cm commit -m # Creates an alias cm for the commit -m command设置完成后git co branch等价于git checkout branchgit cm message等价于git commit -m message。批量配置直接编辑配置文件当别名数量增多或者要添加包含特殊字符的复杂命令时逐条执行git config会比较繁琐。此时可以直接打开 Git 配置文件进行编辑# Syntax: git config --global -e git config --global -e # Opens the global git configuration file in the default git text editorgit config -e会在 Git 默认文本编辑器中打开配置文件加上--global编辑全局配置省略则编辑当前仓库的本地配置。这一思路与仓库中的 edit-config.md 完全一致——与其用git config敲十几遍不如直接改文件尤其适合批量添加带引号、管道符等特殊字符的命令无需担心转义问题。[!TIP] 打开配置文件后你可能希望提前把 Git 默认文本编辑器配置成自己顺手的编辑器如 VS Code、Vim 或 Sublime Text详见下文让别名更顺手一节。相关完整说明见仓库中的 configure-default-text-editor.md。一套可直接复用的实用别名清单下面是 aliases.md 中整理的一套经过实践检验的别名清单可直接复制到~/.gitconfig的[alias]段使用也可按需修改[alias] co checkout cob checkout -b coo !git fetch git checkout br branch brd branch -d st status aa add -A . unstage reset --soft HEAD^ cm commit -m amend commit --amend -m fix commit --fixup undo reset HEAD~1 rv revert cp cherry-pick pu !git push origin git branch --show-current fush push -f flush push --force-with-lease mg merge --no-ff rb rebase rbc rebase --continue rba rebase --abort rbs rebase --skip rom !git fetch git rebase -i origin/master --autosquash save stash push pop stash pop apply stash apply rl reflog下面按功能分组逐一解析方便理解每个别名的用途与适用场景。分支与切换别名展开命令作用cocheckout切换分支或恢复文件cobcheckout -b创建新分支并立即切换过去coo!git fetch git checkout先从远端拉取最新引用再执行切换保证基于最新状态工作brbranch查看/管理分支brdbranch -d删除已合并的分支若分支尚未合并-d会拒绝删除以防丢失提交此时需改用-D其中coo已开始使用!前缀详见别名的高级玩法将拉取 切换两个操作合并为一步。提交与撤销别名展开命令作用cmcommit -m携带消息直接提交amendcommit --amend -m修改最近一次提交的提交信息fixcommit --fixup为指定提交创建fixup 提交配合rebase --autosquash自动合并进历史unstagereset --soft HEAD^撤销最近一次提交但因使用--soft改动仍保留在暂存区可重新组织提交undoreset HEAD~1回退 HEAD 到上一个提交工作区改动保留常用于撤销最近的误提交rvrevert通过新增一个反向提交来安全撤销历史不重写历史适合已推送的分支cpcherry-pick将某个提交应用到当前分支关于fix别名仓库中的 create-fixup-commit.md 给出了完整用法先git add .再git commit --fixup commit创建 fixup 提交最后执行git rebase HEAD~5 --autosquash或git rebase -i --autosquash让 fixup 提交自动并入它所指向的原提交保持提交历史干净整洁。该文章还提供了一个进阶技巧安装fzf后可用!git log -n 50 --prettyformat:%h %s --no-merges | fzf | cut -c -7 | xargs -o git commit --fixup这种基于 shell 的别名交互式选择最近 50 个提交之一来创建 fixup 提交。推送与合并别名展开命令作用pu!git push origin \git branch --show-current使用反引号命令替换动态获取当前分支名并推送到 origin 上对应的同名远程分支fushpush -f强制推送覆盖远端冲突内容注意别名拼写沿用了原清单中的fushflushpush --force-with-lease带租约的强制推送只有当远端分支自上次 fetch 以来未被他人更新时才允许强推否则拒绝避免覆盖他人提交mgmerge --no-ff合并时强制生成 merge commit禁用快进fast-forward合并保留分支合并历史其中flush是比fush更安全的强制推送方式。仓库中的 force-push-better-alternative.md 明确指出git push --force-with-lease会在强制推送前检查远端分支自上次拉取后是否被更新过若他人已推送新内容则直接拒绝从而防止在共享分支上意外覆盖他人工作。该文作者甚至表示已完全用--force-with-lease替代了git push --force。同样地mg merge --no-ff背后的动机可参考 disable-fast-forward.mdGit 默认在可能时执行快进合并只移动指针而不产生合并提交如果你希望保留分支历史结构或强制产生合并提交就可以使用merge --no-ff或全局配置git config --global --add merge.ff false。alias 化的好处是只在需要时启用这一行为。变基与整理历史别名展开命令作用rbrebase对提交进行变基rbcrebase --continue变基冲突解决后继续执行rbarebase --abort放弃当前变基回到变基前状态rbsrebase --skip跳过当前提交继续变基rom!git fetch git rebase -i origin/master --autosquash先拉取远端再以origin/master为目标执行交互式变基并开启--autosquash自动把 fixup 提交并入对应提交rbc/rba/rbs三个别名覆盖了交互式变基interactive rebase的三种典型分支路径结合fix别名与rom的--autosquash可以形成一套发现问题 → 创建 fixup 提交 → 交互式变基自动整理的完整历史整理工作流。交互式变基的更多细节可参考仓库中的 interactive-rebase.md。暂存与恢复别名展开命令作用savestash push把当前工作区改动暂存起来popstash pop取出最近的暂存并应用同时从 stash 列表中移除applystash apply应用最近的暂存但不从 stash 列表中移除便于多处应用rlreflog查看 HEAD 的引用日志是找回丢失提交的救命稻草其中save/pop/apply构成了一套完整的暂存工作流仓库中的 stashing.md 对其有更详细的说明而rl reflog则与 view-undo-history.md 相呼应——即便误操作丢了提交只要 reflog 里还有记录就能恢复。别名的高级玩法!前缀与 shell 命令观察上述清单会发现coo、pu、rom这三个别名以!开头。这是 Git 别名的一个关键机制普通别名不带!在 Git 内部解析为git command只能替代单个 Git 子命令可含参数以!开头的别名会在 shell 中直接执行不走 Git 子命令解析因此可以自由组合多个命令、使用管道|、逻辑运算符以及反引号命令替换。举例说明[alias] coo !git fetch git checkout # 依次执行 fetch 与 checkout pu !git push origin git branch --show-current # 反引号中动态求值当前分支名 rom !git fetch git rebase -i origin/master --autosquash # 拉取后交互式变基对于pu这类别名反引号\git branch --show-current会在命令执行时先求出当前分支名再拼进git push origin因此无论你在哪个分支上git pu 都能把当前分支推送到远端同名分支。这正是 shell 别名强大之处——普通别名无法做到这种先求值、再拼装的动态行为。管理你的别名列出、覆盖与删除别名多了以后难免记不清。仓库中的 list-aliases.md 给出了一个一行流命令来列出所有别名# Syntax: git config -l | grep alias | sed s/^alias\.//g git config -l | grep alias | sed s/^alias\.//g # ststatus # cocheckout # rbrebase这条命令分三步工作git config -l列出配置文件中设置的所有变量包括全局与本地配置grep alias过滤出只包含alias的行sed s/^alias\.//g把每行开头的alias.前缀去掉得到干净的别名命令形式。除列出外还有两种常用的管理操作覆盖别名直接重新执行git config --global alias.alias 新命令同名别名会被新命令替换删除别名执行git config --global --unset alias.alias或打开配置文件手动删除对应行编辑方式见前文git config --global -e。让别名更顺手配置默认文本编辑器使用git config --global -e编辑配置、编写提交信息、执行交互式变基时Git 都会调用其默认文本编辑器。如果默认编辑器不合口味可以按仓库中的 configure-default-text-editor.md 进行配置# Usage: git config --global core.editor editor-command git config --global core.editor code --wait # Sets VS Code as the git text editor git config --global core.editor vim # Sets Vim as the git text editor git config --global core.editor subl --wait # Sets Sublime Text as the git text editor注意图形化编辑器VS Code、Sublime Text通常需要带--wait参数确保 Git 等待编辑器关闭后再继续执行终端编辑器如 Vim则直接写命令名即可。配置完成后git config --global -e就会用你熟悉的编辑器打开.gitconfig编辑那 20 多个别名将变得非常轻松。关联阅读以上内容取自 30-seconds-of-code 仓库的 Git 配置类文章以下是本主题相关的配套文档可继续深入aliases.md本文核心来源Git 别名创建与实用清单edit-config.md用git config -e打开并编辑配置文件list-aliases.md用一行命令列出所有别名configure-default-text-editor.md配置 Git 默认文本编辑器force-push-better-alternative.md--force-with-lease安全强推create-fixup-commit.mdfixup 提交与--autosquash工作流interactive-rebase.md交互式变基详解stashing.mdstash 暂存工作流view-undo-history.md借助 reflog 找回丢失提交这些文章共同构成了 Git 配置主题的完整知识链你可以在仓库的 configuration.yaml 集合页中找到更多同类内容。把上述别名清单复制进你的~/.gitconfig再配合git config --global -e的批量编辑能力你的 Git 工作流将从此变得更加高效、顺手。赞分享教程文档【免费下载链接】30-seconds-of-codeCoding articles to level up your development skills项目地址https://gitcode.com/gh_mirrors/30/30-seconds-of-code点击查看免费下载相关推荐garak misleading 检测器深度解析如何自动识别 LLM 未反驳的虚假断言garak misleading 检测器深度解析如何自动识别 LLM 未反驳的虚假断言 导读 garak.detectors.misleading 是 gar教程文档告别鼠标lazygit快捷键系统打造你的专属Git操作流告别鼠标lazygit快捷键系统打造你的专属Git操作流 作为开发者你是否还在频繁切换终端与鼠标来执行Git命令是否在提交代码时因重复操作而感到效率低下开发工具CLI版本控制如何使用Scientist在5分钟内实现零风险代码重构PHP开发者的终极实验框架指南如何使用Scientist在5分钟内实现零风险代码重构PHP开发者的终极实验框架指南 在PHP开发中重构代码总是充满风险——直到你发现Scientist实验上一篇Hermes 接入 DeepSeek 完整教程三步装好配通几分钟就有第一次对话下一篇TensorFlow iOS终极部署指南苹果设备机器学习快速上手指南 创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

ImHex 十六进制编辑器安装指南:5 分钟从下载到看到第一个字节

ImHex 十六进制编辑器安装指南:5 分钟从下载到看到第一个字节

ImHex 十六进制编辑器安装指南:5 分钟从下载到看到第一个字节 【免费下载链接】ImHex 🔍 A Hex Editor for Reverse Engineers, Programmers and people who value their retinas when working at 3 AM. 项目地址: https://gitcode.com/GitHub_Trendin…

2026/9/30 1:49:24 阅读更多 →
FCN 全卷积语义分割网络实战:基于 PyTorch 的 fcn_resnet50 训练、多 GPU 加速与 mIoU 评估指南(deep-learning-for-image-processing)

FCN 全卷积语义分割网络实战:基于 PyTorch 的 fcn_resnet50 训练、多 GPU 加速与 mIoU 评估指南(deep-learning-for-image-processing)

示例工程 【免费下载链接】deep-learning-for-image-processing deep learning for image processing including classification and object-detection etc. 项目地址: https://gitcode.com/gh_mirrors/de/deep-learning-for-image-processing 点击查看 免费下载 本…

2026/9/30 1:49:24 阅读更多 →
大麦抢票脚本教程:5分钟跑通的Python自动抢票完整指南

大麦抢票脚本教程:5分钟跑通的Python自动抢票完整指南

大麦抢票脚本教程:5分钟跑通的Python自动抢票完整指南 【免费下载链接】Automatic_ticket_purchase 大麦网抢票脚本 项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase 开抢的那一秒,网页上的"立即购买"还没…

2026/9/30 1:48:24 阅读更多 →

最新新闻

GLM-5.3-Flash 本地部署与推理参数完全指南:320B-A18B 原生多模态架构解析与实战配置

GLM-5.3-Flash 本地部署与推理参数完全指南:320B-A18B 原生多模态架构解析与实战配置

大模型基础模型多模态本地部署 【免费下载链接】GLM-5.3-Flash GLM-5.3-Flash (320B-A18B),是GLM-5系列的首个原生多模态模型。320B总参数,能力超过GLM-5.2 项目地址: https://ai.gitcode.com/zai-org/GLM-5.3-Flash 点击查看 免费下载 本篇…

2026/9/30 2:29:50 阅读更多 →
基于模糊自适应PID、传统PID实现热电炉温度控制设计仿真(带配套说明文档)

基于模糊自适应PID、传统PID实现热电炉温度控制设计仿真(带配套说明文档)

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、算法改进、程序设计科研仿真。🍎 往期回顾关注个人主页:完整代码获取 定制创新 论文复现私信🍊个人信条:做科研&#xff0c…

2026/9/30 2:29:50 阅读更多 →
audio.cpp源码结构导读:framework、runtime与模型注册表的架构全景解析

audio.cpp源码结构导读:framework、runtime与模型注册表的架构全景解析

audio.cpp源码结构导读:framework、runtime与模型注册表的架构全景解析 【免费下载链接】audio.cpp An all-in-one, pure C inference engine for audio models, powered by ggml. Supports TTS, STT, VAD, voice conversion, music generation, and more, with hig…

2026/9/30 2:29:49 阅读更多 →
DevTools 深度调试:Network、断点、性能与缓存排查实战

DevTools 深度调试:Network、断点、性能与缓存排查实战

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

2026/9/30 2:29:49 阅读更多 →
第十六届智能车竞赛竞速组成绩、奖项与技术点全解析

第十六届智能车竞赛竞速组成绩、奖项与技术点全解析

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

2026/9/30 2:29:49 阅读更多 →
LlamaIndex 系列【41】数据连接器:LlamaParse、LiteParse

LlamaIndex 系列【41】数据连接器:LlamaParse、LiteParse

文章目录1. 数据连接器1.1 概述1.2 集成包1.3 使用方式1.4 部分模块1.5 模块指南2. LlamaParse2.1 一分钟获取解析结果2.2 可用文档 API2.2.1 Parse2.2.2 Extract2.2.3 Index2.2.4 Classify2.2.5 Split2.3 代码示例3. LiteParse3.1 能力清单3.2 快速开始1. 数据连接器 1.1 概述…

2026/9/30 2:28:49 阅读更多 →

日新闻

Base64 图片头部特征识别:从文件头到格式判断的完整指南

Base64 图片头部特征识别:从文件头到格式判断的完整指南

1. 项目概述:为什么说看懂 base64 图片头部是基本功这几年跟 base64 打交道的机会越来越多,后端接口返回图片、前端渲染验证码、小程序里存小图、还有一些老系统导出报表,动不动就给你一段长到怀疑人生的 base64 字符串。很多人拿到字符串就直…

2026/9/30 0:00:35 阅读更多 →
Java公交站牌广告管理系统:JSP+Servlet+MySQL实战落地指南

Java公交站牌广告管理系统:JSP+Servlet+MySQL实战落地指南

简介:本资源是一份面向Java初学者与课程设计学生的公交站牌广告灯箱管理系统毕业设计文档,聚焦城市公共广告资源信息化管理痛点,提供从需求分析到技术实现的完整方案。文档采用标准学术论文结构,含摘要、英文摘要、目录及五章正文…

2026/9/30 0:00:35 阅读更多 →
用 Redis Lua 构建大模型 API 多租户原子配额治理体系

用 Redis Lua 构建大模型 API 多租户原子配额治理体系

我去年年底接了一个内部 AI 平台的治理需求,背景很直接:公司把 DeepSeek、MiniMax 这类大模型 API 统一封装成内部网关,开放给几个业务团队用。结果第一个月账单出来,额度直接超了 4 倍。仔细查日志,发现原因并不复杂—…

2026/9/30 0:00:35 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/29 8:16:59 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/29 16:41:41 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/29 8:24:48 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/29 19:29:29 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/29 5:58:00 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/29 3:55:56 阅读更多 →