Как я могу настроить мой.git/config, чтобы иметь возможность выдвигать / извлекать из нескольких удаленных репозиториев?

Хорошо, у меня есть три разных компьютера, с которых я работаю, и сейчас их конфигурации различны, поэтому мне приходится нажимать на определенные кнопки на каждом, и это очень надоедливо. То, что я хочу сделать, это иметь ОДИН конфигурационный файл, который я могу использовать для всех трех, что позволит мне сделать следующее:

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

И я новичок в Git, так что я знаю, что, возможно, мне нужно heroku master или 'герою происхождения` или что-нибудь другое?

Вот как выглядит мой конфигурационный файл прямо сейчас:

[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

Очевидно, что URL-адреса git были изменены, чтобы защитить невинных. Что я должен изменить, чтобы я мог легко выдвигать и извлекать оба этих репо?

1 ответ

Решение

Прежде всего, есть три уровня конфигурационных файлов:

  • Конфиг локально для вашего текущего репо
  • локальный конфиг для вашего текущего пользователя (домашний каталог)
  • Конфиг локально для вашей системы

Вы можете определить столько адресов удаленного репо, сколько вам нужно, и вы можете сделать это на уровне пользователя, при условии, что вы синхронизируете этот конфигурационный файл от 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

Если эти команды добавляют удаленные адреса только в ваш текущий файл конфигурации репо, вы можете вручную переместить их в ваш текущий файл конфигурации пользователя.

Но для каждого репо вам необходимо определить ветку удаленного отслеживания для правильного репо:

git branch --set-upstream master origin1/master

(из Git1.7.0, быстрее, чем два git config branch ты должен был сделать раньше)

Так что, если у вас есть правильный механизм синхронизации (например, dropbox) для вашего пользовательского конфигурационного файла, все готово.

Другие вопросы по тегам