如何设置git以推送到另一个用户的Github仓库?

6

假设我是user1,并且我在http://github.com/user1上拥有一个Github账户。自然而然,我会这样设置本地的git:

origin git@github.com:user1/repo.git (fetch)
origin git@github.com:user1/repo.git (push)

如果我拥有对别人的仓库(比如说user2)的获取和推送权限,该仓库位于http://github.com/user2/user2srepo.git,我会怎么做?
编辑: 抱歉,大家的答案都是正确的。我应该澄清一下,我曾经将其设置为origin http://github.com/user2/user2srepo.git,但我想避免每次推送时被要求输入用户凭据。

3个回答

8
假设您的Github仓库都是同一代码库,您可以将它们都添加为本地仓库的远程仓库:
git remote add otherusersorigin http://github.com/user2/user2srepo.git

然后在需要的时候使用该别名:

git fetch otherusersorigin
git push otherusersorigin

要做到这一点而无需身份验证提示,请按照标准的GitHub说明为自己设置SSH密钥,并让其他人将您添加为该仓库的合作者。


这就是我之前的设置,它一直很好用 - 我应该在最初的问题中澄清,我想以一种不需要每次推送时都要求用户凭据的方式进行设置。 - Nick
1
啊,那样的话,请按照 GitHub 的标准说明设置 SSH 密钥,让对方将您添加为该存储库的合作者。 - Matt Gibson

4
原来这比我想象的要容易。在@MattGibson和@eykanal的帮助下,我意识到只需按以下方式设置远程即可:
origin git@github.com:user2/user2srepo.git (fetch)
origin git@github.com:user2/user2srepo.git (push)

这里的区别在于用户被设置为user2而不是我的用户名。我错误地认为我需要输入user2的凭据,但如果我已被设置为user2srepo的协作者,则不是这种情况。
对于那些感兴趣的人,如果您已经设置了远程,则设置此内容的命令如下:
git remote set-url origin git@github.com:user2/user2srepo.git

2
如果您对该仓库有写入权限,只需克隆该存储库并直接提交即可。您无需经过分叉的过程。

这是为工作而准备的,不允许克隆到我的个人账户。 - Nick
1
你误解了,你应该在本地机器上从user2的账户克隆仓库。你不应该fork它,只需像自己的仓库一样克隆即可。 - eykanal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接