Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
拒绝对我自己的GitHub回购的许可_Git_Github - Fatal编程技术网

拒绝对我自己的GitHub回购的许可

拒绝对我自己的GitHub回购的许可,git,github,Git,Github,我正在旅行,没有我的普通笔记本电脑。我需要创建一个新项目,并将其作为新的回购协议推送到我的GitHub。我的朋友拥有这台笔记本电脑(我在这里写这个问题),他也在GitHub上做很多事情。因此,我在本地创建了该项目,然后登录GitHub并创建了远程repo。GitHub希望我为所有新回购协议运行以下典型命令: git init git add README.md git commit -m "first commit" git remote add origin https://github.co

我正在旅行,没有我的普通笔记本电脑。我需要创建一个新项目,并将其作为新的回购协议推送到我的GitHub。我的朋友拥有这台笔记本电脑(我在这里写这个问题),他也在GitHub上做很多事情。因此,我在本地创建了该项目,然后登录GitHub并创建了远程repo。GitHub希望我为所有新回购协议运行以下典型命令:

git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/mygithubuser/example-app.git
git push -u origin master
当我去做git push-u origin master时,我得到了以下错误:

remote: Permission to mygithubuser/example-app.git denied to other-user.
fatal: unable to access 'https://github.com/mygithubuser/example-app.git/': The requested URL returned error: 403
…其中,
other user
是我朋友的GitHub用户名(毕竟,我在用他的笔记本电脑)。因此,我查找了典型的修复程序并尝试运行:

git remote set-url origin https://github.com/mygithubuser/example-app.git
Git没有抱怨,所以我尝试重新运行:

git push -u origin master

…但我得到了相同的“403”错误。知道我哪里出错了吗?这里的解决办法是什么?理想情况下,会有一些神奇的命令要求我作为我的典型用户进行身份验证?

如果要在设置/协作者中配置谁有权访问您的回购,您需要以自己的身份登录:

如果希望提交作者与正在提交的用户不同,可以使用
--author

git commit --author="John Doe <john@doe.org>"
git提交--author=“John Doe” 这个例子来自于


这样,提交者将是
其他用户
,作者将是您指定的人。确保您使用的用户名/电子邮件正确无误。

只需为您的好友提供存储库的推送权限。
作者和提交者仍然是您。
真正的推手是谁并不重要。
推送者不会以任何方式修改提交元数据。

打开终端并运行

git credential-osxkeychain erase
host=github.com
protocol=https
[press return]

之后,
push-u原始主机

用于拒绝访问问题和git用户名、密码

我也有这个问题,但设法解决了它,错误是你的计算机保存了一个git用户名和密码,所以如果你转移到另一个帐户,错误403将出现。下面是解决方案 对于Windows,您可以在此处找到密钥:

控制面板>用户帐户>凭据管理器>Windows凭据>通用凭据


接下来删除Github密钥。

能否临时将ssh pub密钥添加到Github上的密钥中,然后在归还笔记本电脑时将其删除?听起来对我来说是最简单的选择。谢谢@speedingeer(+1)-这是如何工作的?在哪里可以找到正在使用的SSH pub密钥<代码>~/.ssh/known_hosts中不包含任何GitHub引用…GitHub提供了使用ssh密钥的优秀文档。但是他使用的https不使用ssh密钥Thank@speedingeer(同样+1),因此要确认:(1)在以
mygithubuser
身份登录时生成ssh密钥。(2) 将公钥添加到我朋友的笔记本电脑密钥链中,(3)进行推送,(4)提交将显示为由
mygithubuser
推送?它如何证明我的身份?我可以很好地使用SSH,这里唯一重要的事情是我能够推送到我的回购,推送显示为来自我(
mygithubuser
)。谢谢@Felipe Cypriano(+1)-如果我典型的Github用户是
mygithubuser
,我会按照上面的建议进行,那么推送会显示是
mygithubuser
推送了更改,还是
other suer
推送了更改?我需要它来自我(
mygithubuser
)!我的建议将允许访问
其他用户
,因此,如果您与他一起推,它将显示为他。因此,如果你不想给
其他用户
提交权限,请不要照我说的做。@smeeb我添加了一些关于如何使用
其他用户
提交提交的更多信息,但请将自己作为作者。谢谢@Felipe,但这不是我需要的:-/。我想我只是不明白为什么我不能用特定的用户/密码组合来推送更改…因为你使用的是https,如果你的用户名/密码凭据来自任何计算机,你应该能够推送更改,但不能推送其他用户的更改(除非你给他访问权限)。