2013-08-02 8 views
26

Kilka razy znalazłem się w tej sytuacji i nie jestem całkowicie pewien, jak najlepiej sobie z tym poradzić.Kontynuuj pracę nad oddziałem Git po wysłaniu prośby o pociągnięcie.

Mam więc widelec repozytorium git, do którego się przyczyniam. Utrzymuję, że mój główny oddział jest zsynchronizowany z nadrzędnym odgałęzieniem głównym.

Kiedy chcę pracować nad nową funkcją, poprawką itp., Tworzę gałąź od mojego mistrza i wykonuję jakąkolwiek pracę. Kiedy skończę, scalam wszystkie zmiany, które zostały wprowadzone do wzorca wyjściowego w międzyczasie, a następnie wysyłam żądanie ściągnięcia z mojej gałęzi funkcji/poprawki do wzorca wyjściowego.

Teraz, gdy czekam na przyjęcie prośby o odciągnięcie, chcę popracować nad czymś nieco innym. Jednak nowa funkcja wymaga naprawy/nowej funkcji, do której właśnie wysłałem żądanie pobrania. Muszę na tym oprzeć.

Jak rozgałęziać/scalać/obsługiwać gałęzie w taki sposób, że mogę pracować nad kontynuacją, wciąż będąc w stanie scalić/pobrać żądanie w moich zmianach w czysty sposób, gdy pierwsze żądanie ściągnięcia zostanie zaakceptowane do wzorca ?

To wszystko za pomocą Github, chociaż wyobrażam sobie, że odpowiedź będzie miała zastosowanie do Git w ogóle.

Odpowiedz

10

utworzyć nowy oddział (feature2) na podstawie ostatniego zatwierdzenia funkcji1. funkcja 1 nie będzie już więcej przesuwać się dalej i może zostać scalona. feature2 może następnie zostać scalony później (niektórzy ludzie będą argumentować, aby dokonać rebase feature2 w commit, gdzie feature1 został połączony z upstream, ale osobiście nie lubię rebasing).

+0

Więc jeśli funkcja 1 zostanie scalona z wzorcem, nie wystąpią problemy z konfliktami, jeśli później scalę funkcję 2 (opartą na funkcji 1) z wzorcem? –

+1

@IsaacDontjeLindell fakt, że feature2 jest oparty na feature1 nie wprowadzi dodatkowych konfliktów, nie. mogą oczywiście wystąpić konflikty, ale nie będą miały związku z faktem, że są one oparte na cechach1. również, jeśli feature1 zostanie odrzucony, scalenie feature2 spowoduje jego ponowne pobranie, chyba że najpierw dokonasz rebase feature2. – mnagel

+0

Wskazówka @IsaacDontjeLindell: możesz wypróbować to wszystko z lokalnym klonem usuniętym po eksperymencie. – mnagel

-2

Miałem ten sam problem w zeszłym tygodniu. Wpadłem na tę stronę, która bardzo mi pomogła. Mam nadzieję, że to ci pomoże. Musiałem tylko zrobić kilka dziwnych poprawek, ale pojawiały się z łatwością. http://git-scm.com/book/en/Git-Branching-Basic-Branching-and-Merging

+1

Dzięki za odpowiedź. Właściwie to już przeczytałem - jest to dobre wprowadzenie do podstawowego łączenia, ale tak naprawdę nie odpowiada na moje pytanie: żądania ściągania. –