如何设置我的.git / config以便能够从多个远程存储库推送/拉出?

时间:2010-05-16 05:57:48

标签: git heroku unfuddle multiple-repositories

好吧,我有三台不同的电脑,而且现在它们的配置都不同,所以我必须在每个电脑上推/拉,这非常麻烦。我想要做的是有一个配置文件,我可以使用这三个配置文件,这将允许我执行以下操作:

git push unfuddle
git pull heroku
git push unfuddle
git pull heroku

我是git的新手,所以我知道我可能需要heroku master或'heroku origin`或者某些东西?

以下是我的配置文件现在的样子:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = git@heroku.com:HEROKU-APP.git
[branch "master"]
    remote = origin
    merge = refs/heads/master
[remote "unfuddle"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = git@UNFUDDLE-APP.unfuddle.com:UNFUDDLE-APP/UNFUDDLE-APP.git

显然,改变了git网址以保护无辜者。我应该改变什么才能轻松推送和拉出这两个回购?

1 个答案:

答案 0 :(得分:5)

首先,three levels config files

  • 在当前仓库中配置本地
  • 将当地用户配置为本地用户(主目录)
  • 在您的系统本地配置

您可以定义所需的远程仓库地址,并且可以在用户级别执行此操作,前提是您将该配置文件从destop同步到destop

git remote add origin1 git+ssh://remote.location/git/repository1.git
git remote add origin2 git+ssh://remote.location/git/repository2.git
git remote add origin3 git+ssh://remote.location/git/repository3.git

如果这些命令仅在您当前的 repo 配置文件中添加远程地址,则可以手动将这些地址移动到当前的用户配置文件中。

但是在每个仓库中,您需要为正确的仓库定义remote tracking branch

git branch --set-upstream master origin1/master

(来自Git1.7.0,比之前你必须做的两个git config branch更快)

因此,如果您的用户配置文件具有正确的同步机制(例如dropbox),那么您已经完成了设置。