我应该在GitHub上为我的客户的项目工作,其中更改将在他的存储库上。我试着遵循分叉的例子,但只能让更改转到我的帐户存储库?
在GitHub的例子中,为了分叉一个repo,他们创建了一个名为upstream
的远程指向原始项目。我可以通过
get fetch upstream
git merge upstream/master
我可以通过
将更改上传到我的repogit 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远程应该指向不同的存储库
以下是步骤(将存储库分叉并克隆到本地磁盘后要执行的步骤):
- 删除上游引用:
git remote rm upstream
- 添加客户端的信息-
git remote add upstream git@xxxxxx
- 推送您的更改-
git push -u upstream master
。git push -u
将设置远程存储库的HEAD。 - 相同的,如果你想拉-
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。如果您希望能够推动上游存储库,您将不得不请求(向上游团队,即您的客户)将其添加为提交者。