Git

Siema wszystkim :wink:
Pytanie!!!

Kiedy:

  • jestem na branch master
  • pobrałem uaktualnienie z zewnetrznego repo git pull-em
  • przełacze sie na inna branch o nazwie branch_1
  • i zmieniam coś w kodzie,
  • git add
  • git commit “asdf”
  • git push origin branch_1
  • i jest tak jak powinno być.

Ale:

  • Teraz chciałbym uaktualnić to wszystko z master -> na branch_1
  • z taką różnicą ze to co zmieniłem w branch_1 zeby pozostało
  • czy git rebase master, załatwi sprawe?

Proszę nie odsyłać mnie na linki
Pozdro
Ktoś coś :slight_smile:

Rozumiem, że chcesz połączyć zmiany z branch_1 do mastera, tak?
Będąc na branchu master wykonaj git merge branch_1, wtedy zmiany zostaną ‘wcielone’ w mastera

1 Like

Możesz zrobić git merge master (będąc na branch_1), albo rebase’a. Poczytaj, którego wolisz używać:

Z branczy master na branch_1 z tym ze już coś zmieniłem na branch_1 i chciałbym żeby to pozostało!

To jak zacommitujesz zmiany na branch_1 to nie zostana one nadpisane. Chyba że będą konflikty, ale wtedy to ty mergujesz. Mozesz sobie poeksperymentowac lokalnie jesli wszystkie zmiany ktore chcesz zachować masz wysłane na serwer. Dopóki nie zrobisz git push to repozytorium zdalnego nei popsujesz.

Wszystkie powyższe odpowiedzi są jak najbardziej prawidłowe. Ja preferuję git rebase i polecam poczytać i zrozumieć jak działa ten mechanizm.

Poza tym w git można odtworzyć każdą operacje poza jednym wyjątkiem git reset --hard. Trudne jest też odtworzenie operacji po git rebase, lecz nie jest niemożliwe(tutaj clue to git reflog).

PROtip: Nie polecam korzystania z komendy git add -A lub git add . ponieważ nie posiada się kontroli nad tym co się staguje. bardzo przydatną komendą jest git add --patch
Dodatkowo proponuję zaznajomić się z jakąś nakładką na shella(np. https://github.com/robbyrussell/oh-my-zsh), która dodaje wiele przydatnych aliasów do shella związanych z gitem. alias | grep git - można podejrzeć zdefiniowane aliasy do gita

Ogólnie polecam szczerze podniesienia umiejętności posługiwania się gitem, gdyż jak sam zauważyłem duża większość ludzi skupia się na tych totalnie podstawowych komendach przez co potem mają trudności w rozplątaniu się z konfliktów itp.

Pozdrawiam

1 Like