2009-05-22 14 views
10

Gdybym miał następujący plik na moim rozwoju Branża:Jak „Split” pliki z git

# file.rb 

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

ale na moim mistrz oddziału chciałem rozdzielić sposobami w różnych plikach:

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

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

może po prostu utworzyć plik na rozwoju, wtedy kasy na mistrza, rebase i oddzielne t ręcznie tworzy plik, ale czy możliwe jest skonfigurowanie, aby po wprowadzeniu zmian w development został przeniesiony na odpowiednią "część" pliku na master?

+0

Być może w przyszłości zaimplementowana zostanie funkcja łączenia/scalania sterownika "winien" ... –

Odpowiedz

4

Podział "przeniesiony na prawą" część "pliku na" master "" oznaczałby, że Git może wykryć podział.

I jak ilustrują to recent thread (w tym miesiącu: maj 2009), Git jeszcze tam nie jest.
Może to działać w przypadku dużych plików z niewielką częścią podzieloną na inny plik, ale w przypadku małych plików zawartość jest "zbyt różna", aby wykrywacz zmiany nazwy git mógł pobrać zmiany.

Więc rebasemaster” na górze „development” może działać pod warunkiem, że nie publikuje (push) „master” od „development” została wykonana, ponieważ taka operacja (rebase) będzie przepisać SHA-1 od popełnia na „master” oddział (ponieważ są one odtwarzane na wierzchu zatwierdzeń projektu „development” branch)

Jak opisano w rebase vs.merge, jeśli gałąź rozwojowa nie jest „zbyt daleko” (w perspektywie zmian od mistrza , inną strategią byłoby przełożenie rozwoju na master, uczynienie podziału, a następnie połączenie rozwoju z powrotem do master (fast-forward scalić w tym momencie)

+1

Ten wpis ma 7 lat, czy ostatnio pojawiły się jakieś ulepszenia? –

+0

@StrategyThinker W przypadku tak małego pliku nie wydaje mi się. – VonC