git push 如何提交到 upstream ? 让 fork 知道有 commit
Administrator@USER-20140 /D/website/flxx2/basic/vendor/g9901/yii2-gftp (master)
$ git remote -v
origin git@github.com:G9901/yii2-gftp.git (fetch)
origin git@github.com:G9901/yii2-gftp.git (push)
upstream https://github.com/hguenot/yii2-gftp.git (fetch)
upstream https://github.com/hguenot/yii2-gftp.git (push)
G9901/yii2-gftp
是我 fork 来自 hguenot/yii2-gftp
,我现在在本地修改了,然后git push
,可 hguenot/yii2-gftp
并没有收到提交。而我发现在 hguenot/yii2-gftp
是可以直接在网页上进行 pull request
然后commit
,为什么不能客户端提交?
Administrator@USER- /D/website/flxx2/basic/vendor/g9901/yii2-gftp (master)
$ git push upstream
Username for 'https://github.com': G9901
Password for 'https://G9901@github.com':
remote: Permission to hguenot/yii2-gftp.git denied to G9901.
fatal: unable to access 'https://github.com/hguenot/yii2-gftp.git/': The request
ed URL returned error: 403
无法提交到 upstream ,那么原作者就无法知道有修改,无法操作合并,可问题是我在github.com的网页里面却可以提交 commit,如何才可以在我客户端提交过去。
稀里糊涂的
现在在 github.com 网页上提交了,又变成这样了: https://github.com/hguenot/yii2-gftp/pull/5
G9901 wants to merge 4 commits into hguenot:master from G9901:master
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用 git push 默认将推送到 origin 对应的远程仓库,所以 upstream 是没有的获得commit 的,如果要推送到 upstream 有两个要求,第一是你对 hguenot/yii2-gftp.git 有写的权限,也就是你加入了此项目。第二是显式的推送 git push upstream ,提示上说明你没有对 hguenot/yii2-gftp.git 写的权限。Pull/Request 是一个 fork 项目提交了修改合并的机制,适用于fork 项目对原有项目无权限的修改提交。
你的 fork 和 upstream 是不同的 repo,因此 push 到 fork 并不能让 upstream 知道;这是前提,也是 git 的基本概念之一,显然你对此很模糊
先不谈命令行,你得先知道 github 是如何处理 pull request 的(当然,你得先知道什么是 pull request,这些信息可以去看 github help)
然后去看看 git 的文档里关于 request-pull 子命令的文档,这时候你开始建立起 push to fork then let upstream know 的理论基础
不幸的是,仅仅靠
git request-pull
还不能直接完成 github 的 pull request(不是不能,而是有点复杂);幸运的是:如果你用 GUI,那么 github 有 app 可以帮你做这件事;如果你用 CLI,那么 1)mac 下 可以brew install hub
thenhub/git pull-request
,2)linux 下可以用sudo apt-get install github-cli
,3)windows?不清楚,或许可以求助 scoop对于一般用户来说,学会在 web 和 app 下操作 github 就够了,玩转 cli 需要一定的技巧和探索能力。