私人主仓库不归我所有(即,我无权将我的仓库推回主仓库)。我想我只能将我的本地 repo 推回去,并请求所有者将其合并到 master
你似乎在这里混淆了很多东西。首先,存储库是一个单元。克隆存储库时,您将获得它的完整本地副本。
如果您克隆了一个不属于您自己并且您没有写入权限的存储库,那么您将无法将任何更改推送到该存储库。如果是这种情况,您需要先将其分叉到您自己的 GitHub 帐户。为此,请单击存储库视图中的 fork 按钮。这将在您自己的帐户中创建存储库的副本,您将拥有推送权限。
因此,如果您有存储库的本地克隆,您可以做任何您想做的事情。不会影响远程存储库,无论是原始存储库还是您的 GitHub 分支。您可以根据需要创建任意数量的分支并在任何地方提交。请注意,分支不是 Git 中的某种构造。分支是指向提交的简单指针,因此创建分支并没有多大作用,除非您真正开始提交,否则不会对您的结构产生影响。
如果您有要推送到远程存储库的提交,可以使用git push
:
git push <remote> <local-branch>:<remote-branch>
所以如果你想将你的本地master
分支推送到test
远程命名的分支中origin
,你可以这样做git push origin master:test
。当您明确推送到远程分支test
(以前不需要存在)时,您将不会触及远程master
分支。的其他变体git push
只是上述命令的缩写。例如git push <remote> <branch>
,这可能是第二种最常见的推送方式,将本地分支推<branch>
送到跟踪远程分支(通常是同名的其他分支)。所以它或多或少等同于<branch>:<branch>
. 最常见的方法是git push
根据您的配置自行确定远程和分支,但为了安全起见,您可以明确指定它。
因此,回到您的用例,我假设您想要 fork 其他人的存储库以对其进行更改,并将该更改作为拉取请求提交给原始作者。为此,您应该按照以下步骤操作:
- Fork GitHub 上的存储库
- 克隆你自己的存储库(即 fork)
- 在您现在的本地存储库中进行更改
- 将更改推送到您的 fork 中(任何分支都可以,但为了清楚起见建议使用单独的分支)
- 在 GitHub 上浏览你的 fork 时,单击 pull request 按钮以根据你推送的分支创建一个