2010-05-16 10 views
6

Ok, tengo tres computadoras diferentes de las que trabajo y ahora sus configuraciones son todas diferentes, así que tengo que presionar/jalar cierta en cada una y es muy molesto. Lo que quiero hacer es tener un archivo de configuración que puede utilizar para los tres que me permite hacer lo siguiente:¿Cómo puedo configurar mi .git/config para que pueda avanzar/arrastrar desde múltiples repositorios remotos?

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

Y yo soy nuevo en Git, así que sé que a lo mejor necesito heroku master o 'origen heroku' o algo así?

Aquí es lo que mi archivo de configuración se parece en este momento:

[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 

Obviamente las direcciones URL git fueron cambiados para proteger a los inocentes. ¿Qué debería cambiar para que pueda empujar y tirar fácilmente hacia/desde ambos repositorios?

Respuesta

5

En primer lugar, hay three levels de config files:

  • configuración local a su cesión temporal actual
  • configuración local a su usuario actual (directorio principal)
  • de configuración local para su sistema

Puede definir tantas direcciones repo remotas que desee, y puede hacerlo a nivel de usuario, p iempre que sincroniza el archivo de configuración de destOp a 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 

Si esos comandos agregan las direcciones remotas sólo en su repo archivo de configuración actual, puede mover manualmente las realizadas al usuario archivo actual config.

Pero en cada cesión temporal, es necesario definir su remote tracking branch para la cesión temporal derecha:

git branch --set-upstream master origin1/master 

(desde Git1.7.0, más rápido que los dos git config branch que tenía que hacer antes)

Así que si tiene el mecanismo de sincronización correcto (como dropbox por ejemplo) para su archivo de configuración de usuario, ya está todo listo.

Cuestiones relacionadas