git-Github Push上的权限被拒绝错误

最近,我被添加为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

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

Irfan Dayan asked 2020-02-12T21:27:32Z
7个解决方案
116 votes
  • 单击原始github项目页面上的fork按钮
  • 克隆您的分叉存储库,而不是原始的
  • 推到它
  • 按存储库上的“拉取请求”按钮
  • 创造它
  • 等待原作者接受
cnd answered 2020-02-12T21:28:07Z
49 votes

我以前通过更改用户电子邮件时曾经遇到相同的错误git config --global user.email在这里找到我的解决方案:转到:控制面板->用户帐户->管理您的凭据-> Windows凭据

在“通用凭据”下,有一些与Github相关的凭据,单击它们,然后单击“删除”。

当您尝试推送内容时,您需要重新登录。希望对您有帮助

Luan Si Ho answered 2020-02-12T21:28:36Z
20 votes

通过在下面的网址中提供用户名和密码,可以解决此问题。

请用您的github credentauls替换用户名和密码

git remote set-url origin https://<username>:<password>@github.com/narulasrinivas/FirstRepository.git
Srinivas Narula answered 2020-02-12T21:29:01Z
5 votes

出于某种原因,我的推和拉原点已更改为HTTPS-url而不是SSH-url(可能是复制粘贴错误),但是尝试推入会在尝试登录后给我以下错误:

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

希望这可以帮助!

mlunoe answered 2020-02-12T21:29:30Z
4 votes

请参阅有关克隆URL的github帮助。 使用HTTPS,如果您无权进行推送,则基本上将具有只读访问权限。 因此,是的,您需要请作者给予您许可。

如果作者未授予您许可,则您始终可以派生(克隆)他的存储库并自行工作。 一旦完成了不错的测试,就可以向原始作者发送拉取请求。

Shahbaz answered 2020-02-12T21:29:54Z
1 votes

根据原始发布者到目前为止提供的信息,EasySoftwareLicensing / software-licensing-php的项目所有者可能仅接受来自fork的拉取请求,因此您可能需要分叉主仓库并推送到 您的叉子,然后从它向主仓库发出拉动请求。

请参阅以下GitHub帮助文章以获取指示信息:

  1. 分叉回购。
  2. 合作。
answered 2020-02-12T21:30:28Z
0 votes

出现此错误的另一种方法是,如果您有重复或冲突的ssh-add -d id_rsa条目。 首先使用以下命令检查ssh钥匙链上的内容:

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

如您所见,有两封电子邮件是相同的,并且很容易让您感到困惑。 然后检查您的ssh-add -d id_rsa文件:

$ 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的不同电子邮件帐户,但同一个ssh-add -d id_rsa。一定有人会感到困惑,包括git。

要解决此问题,请手动删除(复制后)(默认)文件:

cd ~/.ssh
rm id_rsa
rm id_rsa.pub

现在,复制回您要使用的版本,例如ssh-add -d id_rsa

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

然后再试一次。

出于某种原因,使用2744842186536536780800删除密钥没有按预期方式工作,因为似乎已缓存了密钥链。

not2qubit answered 2020-02-12T21:31:15Z
translate from https://stackoverflow.com:/questions/17857283/permission-denied-error-on-github-push