Как я могу настроить мой.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) для вашего пользовательского конфигурационного файла, все готово.