2010-05-16 10 views
6

Ok, mam trzy różne komputery, z których pracuję, a teraz ich konfiguracje są różne, więc muszę naciskać/ciągnąć pewne na każdym, a to bardzo kłopotliwe. Co chcę zrobić, to mieć jeden plik konfiguracyjny, który można używać do wszystkich trzech, które pozwoli mi wykonać następujące czynności:Jak mogę skonfigurować moją .git/config, aby móc przesyłać dane do/z wielu zdalnych repozytoriów?

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

I jestem nowy w git, więc wiem, że może muszę heroku master lub "Heroku origin" lub coś innego?

Oto co mój plik config wygląda teraz:

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

Oczywiście adresy URL git zostały zmienione w celu ochrony niewinnych. Co powinienem zmienić, aby móc łatwo przesuwać i ciągnąć do/z obu tych repozytoriów?

Odpowiedz

5

Przede wszystkim, istnieje three levels z config files:

  • config lokalnego do aktualnego repo
  • config lokalne dla bieżącego użytkownika (katalog domowy)
  • config lokalne w systemie

Możesz zdefiniować dowolną liczbę zdalnych adresów repo, które możesz wykonać na poziomie użytkownika, p udostępnili synchronizacji że plik konfiguracyjny z Destop do 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 

Jeśli te polecenia dodać zdalne adresy tylko w bieżącym repo pliku config, można ręcznie przenieść te do bieżącej użytkownik pliku konfiguracyjnym.

Ale na każdym repo, musisz określić swoją remote tracking branch dla prawego repo:

git branch --set-upstream master origin1/master 

(od Git1.7.0, szybciej niż dwóch git config branch trzeba było zrobić wcześniej)

Więc jeśli masz odpowiedni mechanizm synchronizacji (na przykład dropbox) dla pliku konfiguracyjnego użytkownika, wszystko jest ustawione.

Powiązane problemy