2012-07-17 50 views
3

假设我是user1,我有一个Github帐号http://github.com/user1。当然,我会成立混帐本地像这样:设置git推送到其他用户的Github回购?

origin [email protected]:user1/repo.git (fetch) 
origin [email protected]:user1/repo.git (push) 

我会做什么,如果我有取&推权限别人的回购(比方说user2),其回购位于http://github.com/user2/user2srepo.git?编辑: 对不起,每个人都对他们的答案是正确的。我应该澄清,我曾经设置为origin http://github.com/user2/user2srepo.git,但我希望避免每次推送时都要求提供用户凭据。

+0

可能重复http://stackoverflow.com/questions/4454839/github-collaboration-using-the-shared-repository-model) – eykanal 2012-07-17 16:19:36

回答

8

假设你的GitHub的回购都在相同的代码,你可以遥控他们都添加到您的本地回购:

git remote add otherusersorigin http://github.com/user2/user2srepo.git 

然后使用别名,只要你需要它:

git fetch otherusersorigin 
git push otherusersorigin 

要在没有验证提示的情况下执行此操作,请根据标准GitHub说明为自己设置SSH密钥,并让其他人将您添加为该回购协议的协作者。

+0

这就是我之前的工作,它工作的很好 - 我应该在我原来的问题中澄清我想以某种方式设置它每次我推送我都不会被要求提供用户凭证。 – Nick 2012-07-17 16:22:19

+1

啊。在这种情况下,请根据标准GitHub说明为您的自己设置SSH密钥,并让其他人将您添加为该回购协议的协作者。 – 2012-07-17 16:23:30

1

如果您有对该回购的写入权限,只需克隆该存储库并直接提交。你不需要经过分叉过程。

+0

这是为了工作,它不允许克隆到我自己的帐户。 – Nick 2012-07-17 16:22:47

+1

你误会了;在你的本地机器上,你应该从'user2'的账号克隆仓库。你不应该分叉它,就像它自己一样克隆它。 – eykanal 2012-07-17 16:24:11

+0

我不是分手,但你说得对。 – Nick 2012-07-17 16:27:34

3

原来,这比我想象的要容易。由于@MattGibson的帮助和@eykanal在评论中,我意识到,我可以只设置远程如下:

origin [email protected]:user2/user2srepo.git (fetch) 
origin [email protected]:user2/user2srepo.git (push) 

的区别就在这里是用户是设置为user2,而不是我自己的用户名。我错误地认为我需要输入user2的凭证,但如果我已被设置为user2srepo的合作者,情况并非如此。

对于那些有兴趣,设置此如果已经在远程集合中的命令如下:

git remote set-url origin [email protected]:user2/user2srepo.git 
[GitHub的协作使用共享的存储库模型(的