使用GPG对git commits进行签名

  1. 你需要有一个GPG key,怎么生成自行百度
  2. 获取私钥ID
    [email protected]:# gpg -K --keyid-format LONG
    /Users/username/.gnupg/pubring.kbx
    -------------------------------
    sec   rsa4096/B2CE49E4A541068D 2018-02-19 [SC]
                912EC803B2CE49E4A541068D495AB570
    uid                 [ 绝对 ] username (username public) 
    ssb   rsa4096/96B05A4A2FB32B64 2018-02-19 [E]
    

    其中,B2CE49E4A541068D 则为私钥ID

  3. 设置git签名私钥ID

    git config user.signingkey B2CE49E4A541068D

    修改git全局设置加--global,否则仅对当前项目生效

  4. 设置默认开启GPGSign

    git config commit.gpgsign true

    修改git全局设置加--global,否则仅对当前项目生效

  5. 设置完成测试commit并查看效果,如无意外将能看到commit的verified标识

    Gitea将如下显示并对commit进行标记,防止伪造


Git 删除旧的提交历史

1.创建新分支(–orphan)

--orphan 建立一个分支不继承任何分支且没有任何commit(基于当前代码分支代码)

git checkout --orphan new

执行完毕后会自动切换到new分支

2.将当前代码进行commit

git add -A

3.创建commit

git commit -am "init"

4.删除要替换的分支

git branch -D master

5.将new更名

git branch -m master

6.推送(-f)

git push -f origin master

7.done