[英]How to push a branch back to a private github repo
我已经在github中将一个私人仓库克隆到我的本地机器上。 在我完成一些更改之后,我想将分支推回到github以提出合并(或拉取请求,就像github调用它一样)。
我怎么做?
我是github的新手(我通常使用bzr / launchpad,命令是bzr push lp:~<username>/<master-branch>/<name of the new child branch>
。这是什么等价于git
?)。
[编辑:我发现我的措辞令人困惑,因为我对git的术语了解不多,我将重新描述我的所作所为]
( bar
是私人回购)
$git clone git@github.com:foo/bar.git
$cd bar
$touch <some file> # ie., make some changes
$git commit ...
$ <<<<< NOW I need to push this back to github here.
从你上面的评论和你原来的问题,你想在github上做一个pull请求,但你已经在本地修改了master
...这是一个问题。 你想要做的是先分支,进行更改,在本地提交,然后推送分支。 然后你可以从那个分支在github上创建一个pull请求。
首先,您需要做的是解决这个问题:
git branch mytopicbranch
git reset - hard origin / master
您现在有一个分支,并在本地将master
重置为远程服务器中的主服务器。 你现在可以推动你的分支:
git push origin mytopicbranch
然后在github上,你将能够为该分支创建一个拉取请求。
正常流程将执行以下操作:
git clone <remote repo>
<cd to directory>
git checkout -b mybranch
<make changes>
<commit changes>
git push origin mybranch
<create pull request on github>
编辑添加:这是你问的原因; 想要做一个“拉动请求”。 如果你只想推master
你只需要:
git push origin master
并且您的更改将致力于远程掌握。
私人主回购不属于我(即,我没有权限将我的回购推回主回购)。 我想我只能推回我的本地回购,并要求所有者将其合并到主人
你似乎在这里混淆了很多东西。 首先,存储库是一个单元。 克隆存储库时,您将获得它的完整本地副本。
如果您克隆的存储库不属于您自己并且您没有写权限,那么您将无法将任何更改推送到该存储库。 如果是这种情况,您需要先将它分叉到您自己的GitHub帐户。 为此,请单击存储库视图中的fork按钮。 这将在您自己的帐户中创建存储库的副本,您将拥有该帐户的推送权限。
因此,如果您拥有存储库的本地克隆,则可以执行任何操作。 没有任何东西会影响远程存储库,既不会影响原始存储库,也不会影响您的GitHub分支。 您可以根据需要创建任意数量的分支,并随意提交。 请注意,分支不是Git中的某些构造。 分支是提交的简单指针,因此创建分支并没有做太多,除非您真正开始提交,否则不会对您的结构产生任何影响。
如果你想提交到远程存储库,你可以使用git push
:
git push <remote> <local-branch>:<remote-branch>
因此,如果您想将本地master
分支推送到远程命名origin
上的分支test
,您可以执行git push origin master:test
。 当您明确推送到远程分支test
(之前不需要存在)时,您将不会触摸远程master
分支。 git push
的其他变体只是上述命令的缩写。 例如git push <remote> <branch>
,它可能是推送内容的第二种最常见的方式,将你的本地分支<branch>
推送到跟踪远程分支(通常是具有相同名称的其他分支)。 所以它或多或少等同于<branch>:<branch>
。 最常见的方式是git push
,它将根据您的配置自行确定远程和分支,但为了安全起见,您可以明确指定它。
因此,回到您的用例,我假设您想要分叉其他人的存储库来对其进行更改,并建议将其更改为原始作者作为拉取请求。 为此,您应该按照以下步骤操作:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.