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

发布于 2022-09-01 15:58:42 字数 1345 浏览 12 评论 0

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

逆光飞翔i 2022-09-08 15:58:42

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

妖妓 2022-09-08 15:58:42
  1. 你的 fork 和 upstream 是不同的 repo,因此 push 到 fork 并不能让 upstream 知道;这是前提,也是 git 的基本概念之一,显然你对此很模糊

  2. 先不谈命令行,你得先知道 github 是如何处理 pull request 的(当然,你得先知道什么是 pull request,这些信息可以去看 github help)

  3. 然后去看看 git 的文档里关于 request-pull 子命令的文档,这时候你开始建立起 push to fork then let upstream know 的理论基础

  4. 不幸的是,仅仅靠 git request-pull 还不能直接完成 github 的 pull request(不是不能,而是有点复杂);幸运的是:如果你用 GUI,那么 github 有 app 可以帮你做这件事;如果你用 CLI,那么 1)mac 下 可以 brew install hub then hub/git pull-request,2)linux 下可以用 sudo apt-get install github-cli,3)windows?不清楚,或许可以求助 scoop

对于一般用户来说,学会在 web 和 app 下操作 github 就够了,玩转 cli 需要一定的技巧和探索能力。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文