GIT - pullowanie brancha z innego brancha

0

Cześć, czy może ktoś wie czy w Gicie można zrobić pull innego brancha bez przechodzenia na niego? Przejrzałem StackOverflow ale więcej tam filozofii niż praktycznych rozwiązań. A może się nie da?

1

Co to znaczy dla ciebie pullowanie z innego brancha? Możesz zrobić merge albo rebase pomiędzy dowolnymi branchami przecież. Jesteś na swoim branchu i robisz merge albo rebase z innym branchem i tyle. Przecież nigdy nie zmieniasz brancha na ten z którego chcesz pobierać zmiany! Zawsze robisz to będąc na "docelowym" branchu.

2

Podpowiem, że będąc na "swoim" to tak naprawdę pullujesz z innego brancha - ale o tej samej nazwie na repo zdalnym - pewnie Origin. Wystarczy pullować, z innej gałęzi będąc na swojej. Z głowy : git fetch origin/other_branch && git checkout my_branche && git merge origin/other_branch

0

Struktura repozytorium jest taka że kolejne wersje systemu są odkładane jako branche. I tak np. kończąc dany zestaw ficzerów robiony jest branch z wersją. Czyli master to linia produkcyjna, a branche to zakończone wersje.
I teraz np. master to wersja 5, wiec branche to 4,3,2,1. Poprawiamy coś na branchu 2, commit i cherry pick na branche 3, 4 i master.
I czy będąc na tym branchu nr 2 można pullować zmiany na innych branchach z repo zdalnego.
A dlaczego? Ponieważ to duży projekt i zmiana brancha pomimo że całkiem szybka to IDE dostaje przy tym palpitacji serca.
@pragmaticdev sprawdzę czy to zadziała.

0

commit i cherry pick na branche 3, 4 i master

Czemu nie rebase? Byłoby bardziej naturalnie, a cherry-pick sprawia ze z czasem będzie gorzej...

I czy będąc na tym branchu nr 2 można pullować zmiany na innych branchach z repo zdalnego.

Ok, teraz rozumiem co chcesz zrobić. Odpowiedź brzmi: zrób to w takim razie z konsoli skoro zmiana w IDE tak cię boli.

0

Właśnie o konsolę mi chodzi, IDE tego nie potrafi. Nawet w Sourcetree nie widzę takiej możliwości bez zmiany brancha.
Nie pytajcie o strukturę dlaczego tak a nie inaczej bo ktoś to wymyślił lata temu i tak już jest.

0
MiL napisał(a):

Właśnie o konsolę mi chodzi, IDE tego nie potrafi. Nawet w Sourcetree nie widzę takiej możliwości bez zmiany brancha.

Nie pytajcie o strukturę dlaczego tak a nie inaczej bo ktoś to wymyślił lata temu i tak już jest.

No ale jak z konsoli zmieniasz brancha to też tak powoli się robi...?

0

Sam branch zmienia się w miarę szybko, ale to powoduje że pliki projektu się zmieniają, wtedy IDE widzi zmianę, zaczyna indeksować, ładować, wentylator startuje aż czasem w końcu się wywali. Mamy kilka makr które automatyzują pracę z gitem np. pullowanie wszystkich lokalnych branchy, ale te makra skaczą po branchach i wtedy robi się to co się robi.
Nie jestem orłem z gita, może to jakiś poroniony pomysł, ale było by to przyjemne :)

0

Ale to nie jest wina gita tylko IDE.

1
MiL napisał(a):

Sam branch zmienia się w miarę szybko, ale to powoduje że pliki projektu się zmieniają, wtedy IDE widzi zmianę, zaczyna indeksować, ładować, wentylator startuje aż czasem w końcu się wywali. Mamy kilka makr które automatyzują pracę z gitem np. pullowanie wszystkich lokalnych branchy, ale te makra skaczą po branchach i wtedy robi się to co się robi.

Nie jestem orłem z gita, może to jakiś poroniony pomysł, ale było by to przyjemne :)

To rób jak niektórzy sugerowali:

  • zamykasz IDE
  • robisz swoje z konsoli
  • otwierasz IDE
1

Tez miałem taki problem. Zreszta budowanie systemu trwało kilka godzin. Dlatego miałem n sklonowanych repo, żeby nie musieć przełączać całych branchow a synchronizacja była między repami lokalnymi Ew na remote. Wtedy ide łapało np zmianę jednego pliku po mergu a nie całej gałęzi.

0

Nie wiem czy dobrze rozumiem problem ale może każdy branch jako osobne drzewo i wtedy problem zmiany brancha znika całkowicie. https://git-scm.com/docs/git-worktree

1 użytkowników online, w tym zalogowanych: 0, gości: 1