[英]GitHub actions commit attribution
请不要问为什么,但我有 2 个 GitHub 帐户。 我将这两个帐户称为 GH1 和 GH2。
存储库:存储库是私有的,它在一个组织中,组织的唯一成员是 GH1 和 GH2。 这是一个我不想链接到我的主要 GH1 的存储库,这就是为什么我不希望该存储库上有任何 GH1 的踪迹,以及为什么我只将其作为 GH2 推送到它。
在我将它们部署到组织的公共存储库之一之前,我正在使用该存储库来测试工作流。
当我在本地推送到 repo(如git push
)时,我的提交归因于 GH2,但是当我检查工作流运行时,它说它是由 GH1 推送的。 我如何确保提交始终归因于 GH2?
澄清一下:提交归因于 GH2,错误归因于 GH1 是在 GitHub 操作工作流运行中。
(已使用 inspect element 对其进行修改以编辑敏感信息。)
Stack Overflow 上有两种过去的解决方案可以解决您的问题。
(这是这个问题的一部分: 如何修改 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(见下文)。
我找到了一个 git 身份管理器。 希望我可以使用它在 GH1 和 GH2 之间切换,但我还没有尝试过 GitHub 动作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.