GitHub操作提交属性

ou6hu8tu  于 2022-12-10  发布在  Git
关注(0)|答案(3)|浏览(111)

请不要问为什么,我有两个GitHub账户,我将这两个账户命名为GH1和GH2。

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

在将工作流部署到组织的某个公共存储库之前,我使用该存储库来测试工作流。
当我在本地推送到repo时(例如,git push),我的提交被归属于GH2,但是当我检查工作流运行时,它说它是由GH1推送的。我如何确保提交总是归属于GH2?

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

(It已使用inspect元素修改,以密文化敏感信息。)

k10s72fa

k10s72fa1#

有两个过去的解决方案堆栈溢出修复您的情况。
1.要在将来提交,请使用正确的用户:

1.对于更改过去的提交以将用户与另一个用户交换:

(这是此问题的一部分:How to amend several commits in Git to change author)的数据

第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"

这将弹出编辑器来确认更改。在这里你需要做的就是保存并退出,它将遍历每个提交并运行-x标志中指定的命令。
您还可以使用以下命令在保持原始时间戳的同时更改作者:

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

第二部分:

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

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

rks48beu

rks48beu2#

Git : fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists
尝试使用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 Actions工作流运行不再将提交归因于GH1(见下面的截图)。

tpgth1q7

tpgth1q73#

我找到了一个git身份管理器。希望我可以用它在GH1和GH2之间切换,但我还没有在GitHub操作中尝试过。
https://github.com/samrocketman/git-identity-manager

相关问题