Git
撤销操作
已 add . ,但是没有 commit
别慌,这是只的文件放在了 暂存区(Stash area)
# git 2.23+
git restore --staged .
git reset HEAD .
已经 commit,但是没有 push
- 只想修改下
commit信息:# 直接覆盖上一次 commit git commit --amend -m "新的完美提交信息" - 不想要这次
commitgit reset --soft HEAD~1
暂存
去修复一个 bug,把新的修改、未完成等不相关的暂存下
git stash -u
# 或者完整版
--include-untracked
# 弹出并删除暂存
git stash pop
# 只查看不弹出
git stash apply
项目中的“套娃”
在用 Hugo、Hexo 搭建博客时,下载主题最优雅的方式绝不是直接复制粘贴,而是使用 Git Submodule(子模块)
git submodule add https://github.com/oliver/hugo-theme.git themes/my-theme
克隆带有子模块的项目
如果你换了电脑,重新克隆主项目,你会发现子模块文件夹是空的。需要执行以下命令把它拉下来
# 方案一:克隆时就一步到位
git clone --recursive <主项目地址>
# 方案二:如果已经克隆了主项目
git submodule update --init --recursive
身份切换
# 查看
git config --list
# 全局
git config --global user.name "YourName"
git config --global user.email "your_email@example.com"
# 局部
git config user.name "WorkName"
git config user.email "work_email@company.com"
全部清空
执行前默念三遍,我代码真的不要了
git reset --hard HEAD && git clean -fd
清空下本地远程已删除分支
在代码合并后,删除了分支,但是本地未处理,避免后期分支命名时提示警告
git fetch origin --prune
在 GitHub 喜提绿色 Verified 认证(GPG 签署)
⚠️ 铁律: GPG 生成时填写的邮箱,必须和你 Git 局部/全局配置的邮箱,以及 GitHub 账号绑定的邮箱完全一致,否则无法触发绿色标签
全新生成 GPG 密钥对
默认,或者去搜索下区别自行选择
gpg --full-generate-key
根据提示输入你的用户名、邮箱(必须与 GitHub 一致)并设置一个记住的密码
提取 Key ID 并导出公钥
查询下刚生成的 key
gpg --list-secret-keys --keyid-format LONG
输出中会有一行类似:sec rsa4096/3AA5C34371567BDD 2026-05-17 [SC]
其中 / 后面的 3AA5C34371567BDD 就是你的 Key ID
导出公钥并复制到 GitHub
gpg --armor --export <你的Key ID>
把终端里输出的以 -----BEGIN PGP PUBLIC KEY BLOCK----- 开头、-----END PGP PUBLIC KEY BLOCK----- 结尾的内容完整复制。
去哪里粘贴? 登录 GitHub -> Settings -> SSH and GPG keys -> New GPG key,把它贴进去。
让本地 Git 开启自动签署
# 告诉 Git 应该用哪一个 GPG 密钥
git config user.signingkey <你的Key ID>
# 开启自动签署开关(当前项目生效,若想全局生效可加 --global)
git config commit.gpgsign true
配置完成后,正常执行 git commit -m "..." 即可,期间可能会弹出窗口要求输入你第一步设置的 GPG 密码
局部/全局关闭 Git 签署功能
git config --global --unset user.signingkey
git config --global --unset commit.gpgsign
删除
如果密钥废弃了或邮箱写错了,想彻底删干净,必须先删私钥,再删公钥(顺序不能错)
# 先删私钥
gpg --delete-secret-keys <你的Key ID>
# 再删公钥
gpg --delete-keys <你的Key ID>
ssh
生成
ssh-keygen -t ed25519 -C "user@github.com" -f ~/.ssh/id_ed25519_github
配置 config
touch ~/.ssh/config
# GitHub 配置
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_github
PreferredAuthentications publickey
本文来自博客园,作者:我已有个她,转载请注明原文链接:https://www.cnblogs.com/gitgud/p/20068934
浙公网安备 33010602011771号