首页 > git 对之前的commit 进行重新签名 Resign

git 对之前的commit 进行重新签名 Resign

在向开源社区提交PR的时候如果之前的提交忘记添加sign (个人签名/公司签名),则社区的DCO检查会失败。

关于通过DCO检查能够确保以下几件事情生效:

  1. 你所提交的贡献是由你自己完成或者 你参与了其中,并且有权利按照开源协议提交代码
  2. 这个贡献是在当前项目的基础上完成的。
  3. 你能够理解并遵守开源协议,你的贡献将会被完全公开。

这个检查对于社区来说能够防止后面你想要回退你的commit。

基本的签名方式就是在你git commit -m的时候增加一个git commit -s -m "xxx",这样你提交的commit 内容就包含了你的签名信息

    fix the review codeSigned-off-by: BaronStack <2689496754@qq.com>

很多时候如果我们没有配置自己的commit 缩写的话就会忘记-s选项,这个时候需要对之前的commit 进行resign

大体对应两种情况:

  1. resign 上一次的commit
  2. resign 之前的很多次commit

针对第一种情况,很简单:

git rebase --amend ,直接在上一次的commit内容中增加你的签名信息即可。

第二个情况可以执行下面的内容

git rebase --exec 'git commit --amend --no-edit -n -S' -i 46809e5902

大体逻辑就是针对到-i之前的commit为止(包括-i)所有的commit 都会执行一次git commit --amend --no-edit -n -S来签名

在这里插入图片描述

会进入编辑器,直接保存退出就可以,然后不断得执行git rebase --continue,如果过程中有哪一个commit rebase失败的话需要根据提示解决冲突。如果执行过程中又不想rebase了,直接git rebase --abort即可,会将本次rebase触发的所有的变更都回滚掉。

执行完成之后就能git log看到所有的commit内容都带有你的签名信息了。

更多相关:

  • 一、 Git 常用命令速查   git branch 查看本地所有分支 git status 查看当前状态  git commit 提交  git branch -a 查看所有的分支 git branch -r 查看远程所有分支 git commit -am "init" 提交并且加注释  git remote add origi...

  • 安装githttps://www.git-scm.com/download/ 点击 安装好了之后,在开始菜单里面找到Git Bash git config --global user.name "你的github用户名" git config --global user.email “你的github邮箱” 查看是否登录账户配置成...

  • 了解Git和GitHub、虚幻引擎C++项目的版本控制等等! 你会学到: Git是如何工作的 如何从命令行使用Git 使用GitHub、GitHub桌面应用程序、Visual Studio中的Git工具和VS代码等Git工具 在虚幻引擎5和虚幻引擎4中使用Git跟踪虚幻引擎项目 在Visual Studio和Visual Stu...

  • 在 oh-my-zsh 进入 包含 git 仓库目录时,执行 ls 时会比较卡顿 原因: oh-my-zsh 要获取 git 更新信息 解决办法: 设置 oh-my-zsh 不读取文件变化信息(在 git 项目目录执行下列命令) $ git config --add oh-my-zsh.hide-dirty 1 如果还是...

  • gitlab创建项目a及一个主分支master 本地整体复制已有项目b 本地克隆gitlab上新创建的项目a(git clone gitlab地址) 将本地克隆过来的a文件夹下的.git目录拷贝到b项目下(cp -r .git …/b,注意是两个点,不是三个点,写两个点后,编辑器一直给输出三个点,晕) 删除本地克隆过来的项目a,将本地...