Github Push上的权限被拒绝错误

6ss1mwsb  于 2022-12-17  发布在  Git
关注(0)|答案(9)|浏览(194)

最近,我被添加为Github项目的成员/贡献者。我已经在本地机器上克隆了那个项目。
我做了一些更改并在本地提交,现在尝试将更改推送到原始存储库,但当我尝试推送时,我得到了一些权限错误?

C:\Users\MM\Documents\GitHub\software-licensing-php [master]> git push
origin master
remote: Permission to EasySoftwareLicensing/software-licensing-php.git denied to
 irfandayan.
fatal: unable to access 'https://github.com/EasySoftwareLicensing/software-licen
sing-php.git/': The requested URL returned error: 403
C:\Users\MM\Documents\GitHub\software-licensing-php [master]> git statu
s
# On branch master
# Your branch is ahead of 'origin/master' by 2 commits.
#   (use "git push" to publish your local commits)
#
nothing to commit, working directory clean

我是否缺少一些推动更改的权限,以便我可以询问项目的原始作者?

w1jd8yoj

w1jd8yoj1#

  • 在原始github项目页面上单击fork按钮
  • 克隆你的forked资源库而不是原始的
  • 全力以赴
  • 按存储库上的“合并请求”按钮
  • 创建它
  • 等待原作者接受
ecr0jaav

ecr0jaav2#

当我通过git config --global www.example.com更改我的用户邮箱时,我曾经遇到过同样的错误user.email,并在这里找到了我的解决方案:转到:控制面板-〉用户帐户-〉管理凭据-〉Windows凭据
在***通用凭据***下有一些与Github相关的凭据,单击它们并单击“删除"。
并且当你尝试推一些东西时,你需要重新登录.希望这对你有帮助

ff29svar

ff29svar3#

在可以解决这个问题,提供用户名和密码在下面的网址。
请使用Github凭据替换用户名和密码:

git remote set-url origin https://<username>:<password>@github.com/<username>/FirstRepository.git
xkftehaa

xkftehaa4#

由于某种原因,我的push和pull源被更改为HTTPS-url,而不是SSH-url(可能是我端的复制粘贴错误),但尝试push会在尝试登录后给予我以下错误:

Username for 'https://github.com': xxx
Password for 'https://xxx@github.com': 
remote: Invalid username or password.

使用SSH url更新远程源,解决了问题:

git remote set-url origin git@github.com:<username>/<repo>.git

希望这有帮助!

qxsslcnc

qxsslcnc5#

请看github help on cloning URL。使用HTTPS,如果你没有被授权推送,你基本上只有一个只读访问权限。所以是的,你需要请求作者给予你权限。
如果作者没有给予你权限,你可以自己创建(复制)他的存储库,一旦你创建了一个不错的、经过测试的特性,你就可以向原作者发送一个拉取请求。

x3naxklr

x3naxklr6#

另一种出现此错误的方法是,如果您有重复或冲突的~/.ssh/*条目。首先检查ssh key-chain中的内容:

$ ssh-add -l
2048 SHA256:<hash1> email2@gmail.com (RSA)
2048 SHA256:<hash2> email1@gmail.com (RSA)
2048 SHA256:<hash3> email1@gmail.com (RSA)

正如你所看到的,有两封邮件是相同的,很容易让你混淆。然后检查你的config文件:

$ cat ~/.ssh/config

# GitHub: email1@gmail.com
Host github_ex
 HostName github.com
 PreferredAuthentications publickey
 IdentityFile ~/.ssh/github_ex

# GitHub: email2@gmail.com
Host github
 HostName github.com
 PreferredAuthentications publickey
 IdentityFile ~/.ssh/github

# Bitbucket: email1@gmail.com
Host bitbucket
 HostName bitbucket.org
 PreferredAuthentications publickey
 IdentityFile ~/.ssh/bitbuc

在这里你可以看到github有两个不同的邮箱账号,但是HostName是相同的,这肯定会让人搞混,包括你的git。
要解决此问题,请手动删除(复制后)(默认)文件:

cd ~/.ssh
rm id_rsa
rm id_rsa.pub

现在复制回您要使用的文件,例如Host github

cp -a github id_rsa
cp -a github.pub id_rsa.pub

那就再试一次。
由于某种原因,使用ssh-add -d id_rsa删除密钥没有按预期工作,因为似乎密钥链被缓存。

czq61nw1

czq61nw17#

我也有这个问题,但设法解决了它,错误是,你的电脑已经保存了一个git用户名和密码,所以如果你转移到另一个帐户的错误403将出现。下面是解决方案对于Windows,你可以在这里找到键:
控制面板〉用户帐户〉凭据管理器〉Windows凭据〉通用凭据
接下来移除Github密钥。

0yg35tkg

0yg35tkg8#

根据本文作者目前提供的信息,EasySoftwareLicensing/software-licensing-php的项目所有者可能只接受来自fork的pull请求,因此您可能需要对主repo进行fork并将其推送到fork,然后从fork向主repo发出pull请求。
有关说明,请参见以下GitHub help articles

  1. Fork a Repo .
  2. Collaborating .
n3h0vuf2

n3h0vuf29#

最后一个答案(其他人无疑真的回答了):也有可能是,你运行的是一个非常旧的git版本。升级到一个新的git,它会给你提供合适的选项(使用PAT,通过浏览器验证,等等)。

相关问题