2009-05-22 15 views
10

Si tuviera que siguiente archivo en mi desarrollo rama:Cómo archivos "split" con Git

# file.rb 

class Code 
def methodA 
    'aA1' 
end 
def methodB 
    'bB2' 
end 
end 

pero en mi rama maestro quería separar los métodos en diferentes archivos:

# in file.rb 
class Code 
    def methodA 
    'aA1' 
    end 
end 

# in extra.rb 
class Code 
    def methodB 
    'bB2' 
    end 
end 

yo podría simplemente crear el archivo en el desarrollo , a continuación, la caja para maestro, rebase yt separada él archivo manualmente, pero ¿es posible configurar las cosas de modo que cuando realice cambios en desarrollo sería llevado a la "parte" derecha del archivo en maestro?

+0

Quizás en el futuro cuando se implemente la estrategia 'fusionar'/fusionar el controlador ... –

Respuesta

4

Tener una partición "transferida a la derecha" del archivo en 'master' "implicaría que Git podría detectar la división.

Y como ilustrar con esto recent thread (este mes: mayo de 2009), Git todavía no está allí.
Eso podría funcionar para archivos grandes con una pequeña parte dividida en otro archivo, pero para archivos pequeños, el contenido parece "demasiado diferente" para el detector de cambio de nombre git para recoger los cambios.

Así rebase 'master' en la parte superior de 'development' podría funcionar, siempre y cuando no publicó (push) 'master' desde 'development' se ha hecho, porque tal operación (rebase) volverá a escribir el algoritmo SHA-1 de confirmaciones de 'master' rama (ya que se reproducen en la parte superior de confirmaciones de la 'development' rama)

Como ya he descrito en rebase vs.merge, si su rama de desarrollo no es "demasiado lejos" (en términos de modificaciones de maestro , otra estrategia sería volver a basar el desarrollo en la parte superior del maestro, hacer la división y luego fusionar el desarrollo de nuevo a maestro (avance rápido fusionarse en este punto)

+1

Esta publicación tiene 7 años, ¿ha habido alguna mejora últimamente? –

+0

@StrategyThinker Para un archivo tan pequeño, no lo creo. – VonC