簡體   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