猿问

git push 如何提交到 upstream ? 让 fork 知道有 commit

Administrator@USER-20140/D/website/flxx2/basic/vendor/g9901/yii2-gftp(master)
$gitremote-v
origingit@github.com:G9901/yii2-gftp.git(fetch)
origingit@github.com:G9901/yii2-gftp.git(push)
upstreamhttps://github.com/hguenot/yii2-gftp.git(fetch)
upstreamhttps://github.com/hguenot/yii2-gftp.git(push)
G9901/yii2-gftp是我fork来自hguenot/yii2-gftp,我现在在本地修改了,然后gitpush,可hguenot/yii2-gftp并没有收到提交。而我发现在hguenot/yii2-gftp是可以直接在网页上进行pullrequest然后commit,为什么不能客户端提交?
Administrator@USER-/D/website/flxx2/basic/vendor/g9901/yii2-gftp(master)
$gitpushupstream
Usernamefor'https://github.com':G9901
Passwordfor'https://G9901@github.com':
remote:Permissiontohguenot/yii2-gftp.gitdeniedtoG9901.
fatal:unabletoaccess'https://github.com/hguenot/yii2-gftp.git/':Therequest
edURLreturnederror:403
无法提交到upstream,那么原作者就无法知道有修改,无法操作合并,可问题是我在github.com的网页里面却可以提交commit,如何才可以在我客户端提交过去。
稀里糊涂的
现在在github.com网页上提交了,又变成这样了:https://github.com/hguenot/yii2-gftp/pull/5
G9901wantstomerge4commitsintohguenot:masterfromG9901:master
HUX布斯
浏览 3159回答 2
2回答

子衿沉夜

使用gitpush默认将推送到origin对应的远程仓库,所以upstream是没有的获得commit的,如果要推送到upstream有两个要求,第一是你对hguenot/yii2-gftp.git有写的权限,也就是你加入了此项目。第二是显式的推送gitpushupstream,提示上说明你没有对hguenot/yii2-gftp.git写的权限。Pull/Request是一个fork项目提交了修改合并的机制,适用于fork项目对原有项目无权限的修改提交。

心有法竹

你的fork和upstream是不同的repo,因此push到fork并不能让upstream知道;这是前提,也是git的基本概念之一,显然你对此很模糊先不谈命令行,你得先知道github是如何处理pullrequest的(当然,你得先知道什么是pullrequest,这些信息可以去看githubhelp)然后去看看git的文档里关于request-pull子命令的文档,这时候你开始建立起pushtoforkthenletupstreamknow的理论基础不幸的是,仅仅靠gitrequest-pull还不能直接完成github的pullrequest(不是不能,而是有点复杂);幸运的是:如果你用GUI,那么github有app可以帮你做这件事;如果你用CLI,那么1)mac下可以brewinstallhubthenhub/gitpull-request,2)linux下可以用sudoapt-getinstallgithub-cli,3)windows?不清楚,或许可以求助scoop对于一般用户来说,学会在web和app下操作github就够了,玩转cli需要一定的技巧和探索能力。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答