如何将更改从分支项目推送到原始项目



我应该在GitHub上为我的客户的项目工作,其中更改将在他的存储库上。我试着遵循分叉的例子,但只能让更改转到我的帐户存储库?

在GitHub的例子中,为了分叉一个repo,他们创建了一个名为upstream的远程指向原始项目。我可以通过

查看它的变化
get fetch upstream
git merge upstream/master

我可以通过

将更改上传到我的repo
git push –u  origin

将我的更改复制到我的帐户。

我试着

git push –u upstream

将我的更改推送到原始帐户。我得到了以下错误

你不能推送到git://github.com.octocat/SpoonKnife.git使用git@github.comoctocat/Spoon0-Knife.git

基本上,为了与客户合作,您有两个主要选择:

  • 发送您的客户端pull request(更多信息在这个GitHub帮助项目)。这允许你的客户在合并之前审查,讨论和/或要求对你的提案进行一些更改。
  • 客户端请求将committer添加到他们的项目中。这将允许你直接将你的提交推送到他们的存储库,而不需要你这边的分支/克隆存储库。

作为旁注,勺子刀。git是GitHub的只读存储库之一(用于演示目的),您将无法向其提交(除非您的客户端 GitHub)。因此,客户机的upstream git远程应该指向不同的存储库

以下是步骤(将存储库分叉并克隆到本地磁盘后要执行的步骤):

  1. 删除上游引用:git remote rm upstream
  2. 添加客户端的信息- git remote add upstream git@xxxxxx
  3. 推送您的更改- git push -u upstream mastergit push -u将设置远程存储库的HEAD。
  4. 相同的,如果你想拉- git pull upstream master

如果你更喜欢origin这个名字,把upstream替换成origin,但仍然按照步骤1删除对Spoon-Knife.git的引用。然后在步骤2 - git remote add origin git@xxxx .

git://github.com.octocat/SpoonKnife.git是一个只读的URL。GitHub建议,相应的可写URL是git@github.comoctocat/Spoon0-Knife.git。如果您希望能够推动上游存储库,您将不得不请求(向上游团队,即您的客户)将其添加为提交者。

相关内容

最新更新