2011-09-17 6 views
5

Tengo el origen remoto configurado como la rama predeterminada para mi bifurcación actual. También tengo un control remoto en sentido ascendente que no es el predeterminado para la sucursal. ¿Hay alguna forma de configurar una bifurcación predeterminada en el control remoto, de modo que cuando la ejecute se establezca de manera predeterminada en esa bifurcación?especifique una bifurcación predeterminada para un control remoto no predeterminado para la extracción

Aquí es mi .git/config:

[remote "origin"] 
     fetch = +refs/heads/*:refs/remotes/origin/* 
     url = [email protected]:studgeek/knockout.git 
[branch "gh-pages"] 
     remote = origin 
     merge = refs/heads/gh-pages 
[remote "upstream"] 
     url = git://github.com/SteveSanderson/knockout.git 
     fetch = +refs/heads/*:refs/remotes/upstream/* 
     merge = refs/heads/gh-pages 

Con esto puedo hacer feliz lo siguiente y el valor predeterminado es origin/gh-pages

git pull 

Lo que me gustaría hacer es simplemente darle el remoto aguas arriba y hacer que descubra la parte de la rama (páginas gh) así que

git pull upstream 

rather rather que esto

git pull upstream gh-pages 

En este momento me sale el siguiente si omito la rama:

$ git pull upstream 
You asked to pull from the remote 'upstream', but did not specify 
a branch. Because this is not the default configured remote 
for your current branch, you must specify a branch on the command line. 

puedo ver tres formas diferentes de morosos que trabajaría para mí en mis situaciones actuales, pero estoy no estoy seguro de cómo hacer alguno de ellos :): * Simplemente use la rama actual como la predeterminada en el control remoto ascendente * Indique una bifurcación predeterminada para el control remoto ascendente para la bifurcación actual (dejando origen la bifurcación predeterminada) * Indique una rama predeterminada en el control remoto. El peligro aquí, por supuesto, si cambio de rama, la rama predeterminada de subida sigue siendo la misma. En mi caso, eso estaría bien, pero puedo ver a gente ardiente que no lo esperaba.

La nota specifying git branch for remote hace una pregunta similar, pero la solución requiere hacer una de dos cosas que no queremos hacer: cambiar el control remoto predeterminado o enumerar explícitamente la bifurcación (queremos que este código evite el error manual).

Respuesta

4

En .git/config, puede proporcionar la información. Ejemplo si se encuentra en la rama foo y quiere tirar de forma remota desde moo

[branch "foo"] 
    remote = origin 
    merge = refs/heads/moo 

próxima vez que ejecute git pull en la rama foo, tomará el papel de moo.

Esto ha sido cubierto en stackoverflow =>How do you get git to always pull from a specific branch?

+4

esto no responde a la pregunta, ya que esto sólo funciona para el valor por defecto remoto (origen)! – Noldorin

Cuestiones relacionadas