Git

撤销操作

add . ,但是没有 commit

别慌,这是只的文件放在了 暂存区(Stash area)

# git 2.23+
git restore --staged .

git reset HEAD .

已经 commit,但是没有 push

  • 只想修改下 commit 信息:
    # 直接覆盖上一次 commit
    git commit --amend -m "新的完美提交信息"
    
  • 不想要这次 commit
    git 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
posted @ 2026-05-18 11:31  我已有个她  阅读(13)  评论(0)    收藏  举报