繁体   English   中英

GitHub 动作提交归属

[英]GitHub actions commit attribution

请不要问为什么,但我有 2 个 GitHub 帐户。 我将这两个帐户称为 GH1 和 GH2。

存储库:存储库是私有的,它在一个组织中,组织的唯一成员是 GH1 和 GH2。 这是一个我不想链接到我的主要 GH1 的存储库,这就是为什么我不希望该存储库上有任何 GH1 的踪迹,以及为什么我只将其作为 GH2 推送到它。

在我将它们部署到组织的公共存储库之一之前,我正在使用该存储库来测试工作流。

当我在本地推送到 repo(如git push )时,我的提交归因于 GH2,但是当我检查工作流运行时,它说它是由 GH1 推送的。 我如何确保提交始终归因于 GH2?

澄清一下:提交归因于 GH2,错误归因于 GH1 是在 GitHub 操作工作流运行中。

不正确的 GitHub 操作工作流属性

(已使用 inspect element 对其进行修改以编辑敏感信息。)

Stack Overflow 上有两种过去的解决方案可以解决您的问题。

  1. 为了使将来的提交使用正确的用户:
  1. 要更改过去的提交以将用户与另一个用户交换:

(这是这个问题的一部分: 如何修改 Git 中的几个提交以更改作者

第1部分:

设置您的 git 作者设置。 例如:

git config --global user.name "John Doe"
git config --global user.email johndoe@example.com

然后在给定的 SHA 之后为所有提交重置作者

git rebase -i YOUR_SHA -x "git commit --amend --reset-author -CHEAD"

这将弹出您的编辑器以确认更改。 您需要在这里做的就是保存并退出,它会通过每次提交 go 并运行 -x 标志中指定的命令。

您还可以在保持原始时间戳的同时更改作者:

git rebase -i YOUR_SHA -x "git commit --amend --author 'New Name <new_address@example.com>' -CHEAD"

第2部分:

git filter-branch --env-filter 'if [ "$GIT_AUTHOR_EMAIL" = "incorrect@email" ]; then
     GIT_AUTHOR_EMAIL=correct@email;
     GIT_AUTHOR_NAME="Correct Name";
     GIT_COMMITTER_EMAIL=$GIT_AUTHOR_EMAIL;
     GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME"; fi' -- --all

我会阅读链接中的详细信息,以确保您在执行操作之前了解自己在做什么。

Git:致命:无法从远程存储库读取。 请确保您具有正确的访问权限并且存储库存在

尝试用 SSH 代替。 我会为 GH1 和 GH2 创建 2 个密钥,然后将我的 SSH 配置编辑为如下内容:

Host github.com-GH2
        HostName github.com
        User GH2
        IdentityFile ~/.ssh/github_GH2

在我想归为 GH2 的存储库中,我可以简单地运行这个 git 命令:

git remote set-url origin git@github.com-GH2:user/repo.git

我使用 SSH url 集进行了推送,我很自豪地说 GitHub 操作工作流运行不再将提交归因于 GH1(见下文)。

最后,更正 GitHub 归属地

我找到了一个 git 身份管理器。 希望我可以使用它在 GH1 和 GH2 之间切换,但我还没有尝试过 GitHub 动作。

https://github.com/samrocketman/git-identity-manager

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM