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

05W*_*STi 6 git heroku unfuddle multiple-repositories

好吧,我有三台不同的计算机,我现在的配置都不同,所以我必须在每个计算机上推/拉,这非常麻烦.我想要做的是有一个配置文件,我可以用于所有三个,这将允许我执行以下操作:

git push unfuddle
git pull heroku
git push unfuddle
git pull heroku
Run Code Online (Sandbox Code Playgroud)

我是git的新手,所以我知道也许我需要heroku master或者'heroku origin`或者somethign?

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

[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
Run Code Online (Sandbox Code Playgroud)

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

Von*_*onC 5

首先,有三个级别配置文件:

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

您可以定义所需的远程仓库地址,并且可以在用户级别执行此操作,前提是将该配置文件从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
Run Code Online (Sandbox Code Playgroud)

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

但是在每个仓库中,您需要为正确的仓库定义远程跟踪分支:

git branch --set-upstream master origin1/master
Run Code Online (Sandbox Code Playgroud)

(从Git1.7.0开始,比git config branch之前你必须做的更快)

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