簡體   English   中英

git 中的錯誤:您只能在此存儲庫中推送自己的提交

[英]Error in git: You can only push your own commits in this repository

昨天我在嘗試將我的提交推送到 repo 時開始收到錯誤,如何解決? 而且我不是這個 repo 的管理員。

remote: You can only push your own commits in this repository
remote: Commit commitName was committed by <myName> <my@users.noreply.github.com>
To ssh://bitbucket.awg.ru/repo
 ! [remote rejected] branchName -> branchName (pre-receive hook declined)
error: failed to push some refs to 'ssh://git@bitbucket.awg.ru/repo'

更新

謝謝大家,問題解決了。 問題出在 Bitbucket 方面,管理員更改了一些選項。 現在一切正常。

謝謝大家,問題解決了。 問題出在 Bitbucket 方面,管理員更改了一些選項。 現在一切正常。

更新

根據提出問題的@Oleg。 問題通常是由於 Bitbucket 掛鈎而發生的。 此鈎子將拒絕任何包含推送到服務器的用戶未提交的提交的推送。

要解決問題:

  • 您必須對 Bitbucket 服務器中的存儲庫具有管理員訪問權限
  • 轉到服務器中的存儲庫
  • 然后⚙ 側欄中的存儲庫設置
  • 選擇掛鈎
  • 禁用驗證提交者掛鈎
  • 你完成了

在將其推送到 bitbucket 之前,您需要設置您的身份

git config --global user.email "Your Email"
git config --global user.name "Your Name"
git push origin <branch-name>
  1. 轉到您的回購瀏覽器並檢查您的個人資料中的用戶名和電子郵件(右上角)

  2. 在 git bash 中根據您的 git web 配置文件更新您的詳細信息 git config --global user.email "your@email.com" git config --global user.name "USERNAME"

  3. 您需要撤消提交,然后在步驟 2 中更改用戶詳細信息后重做

  4. 推送更改 git push

假設您已經按照@Manish R 的回答完成了 git config,然后檢查 Bitbucket 是否沒有強制執行驗證提交程序掛鈎。 見項目 -> 設置 -> 鈎子

在此處輸入圖像描述

在我的辦公機器上處理不同的項目時,我遇到了同樣的問題。 Git 使用我的辦公室電子郵件“asankasi@abc.com”進行全局配置。 另一個是 GitLab 存儲庫的開源項目,由我的 gmail 帳戶進行身份驗證。

推送 GitLab 存儲庫不起作用,顯示與上述相同的錯誤。 原因是,提交消息的作者來自我的辦公室電子郵件。

為每個存儲庫保留不同的提交者姓名和電子郵件,對我有用。 我已經修改了 GitLab 存儲庫的user.email 這只是省略了 --global 標志。 在此處輸入圖像描述

現在您的所有提交都將來自您為存儲庫設置的新作者,以防止上述錯誤。

您必須撤消具有不正確電子郵件地址的提交,然后如下所述更新 git 配置。 如果您提交了多次,您可能需要挑選然后提交,但只有在運行完這些步驟之后:

# remove "--global" if you only want to update it for the local repo
git config --global user.email "Your Email"
git config --global user.name "Your Name"

進行新的提交,然后您應該能夠推送。

如果設置user.emailuser.name后問題仍然存在? 您可能需要更改您的提交作者日志以匹配該用戶。 只需在 cmd 下運行之前檢查 git 日志。

git commit --amend --reset-author --no-edit

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM