Mirki pytanko z Gita. Utworzyłem sobie nowy task-branch od mastera. Dodałem swoje zmiany i przed mergem chciałem pobrac aktualne zmiany z mastera. W czasie jak pracowałem nad taskiem, inne osoby robiły swoje zadania i zmergowały ich branche do mastera, więc muszę te zmiany pobrać przed moim mergem.
Wklepałem git pull origin master na moim branchu i dostaję wynik: fatal: Not possible to fast-forward, aborting. Są różne rozwiązania w necie, ale chce się was spytać jaki jest prawidłowy, żebym przypadkiem coś nie #!$%@?ł przy masterze xD
@nick230: musisz zmergować maina do twojego brancha (ja tego nie lubie) lub zrobić rebase twoich zmian na maina. Czyli kazdy Twój commit nakładasz na najnowszą wersję.(ten sposób robisz tylko jeśli jedynie ty pracujesz na twoim branchu bo ta operacja modyfikuje tego brancha,p rzekłada go w inne miejsce)
@nick230: Sam jestem ciekaw odpowiedzi. Wydaje mi się, że powinieneś przebazować swoją gałąź na mastera. git rebase master powinno wpisać zmiany z mastera przed Twoimi zmianami. Wtedy masz ładną liniową historię. Błąd przy git pull origin master wygląda jakby coś się zmieniło w historii origin/master co powoduje, że nie możesz ściągnąć stamtąd zmian na swojego mastera w prosty sposób. Tak jakby ktoś nadpisał historię na origin masterze i teraz te
@nick230: nie pull, tylko merge. Uzyj sibie UI. uzywanie gita z lini poleceń to masochim, czasem rzeba ale przez 99% czasu można wygodnie z UI. Na komputerze też pracujesz w konsoli?
@zibizz1: Pracuje od lat korzystając z UI, ale pierwszy raz w tej firmie dostałem #!$%@?, że nie powinienem korzystać z UI bo to niezaufane narzędzie i mam korzystać z lini poleceń xDD Mam sporo lat doświadczenia z gitem, a pierwszy raz od dawna mam problem z mergem :D
@nick230: pull i rebase to różne operacje. Mam wrażenie, że je mylisz. Pull służy do ściągania zmian z remote. Rebase służy do przepisania kolejności zmian.
@kobrys13: Ja polecam Visual Studio Code z GitLens. Nie znalazłem lepszego interfejsu do git. Czasem nawet jak piszę w innym programie to trzymam odpalone VSC i tam robię wszystkie rzeczy związane z gitem.
@nick230: Na swoim branchu robisz git pull origin master --no-rebase, rozwiązujesz konflikty i masz merge commit. Wszystko jest aktualne, mergowalne i bez zbędnego zachodu ( ͡°͜ʖ͡°)
Utworzyłem sobie nowy task-branch od mastera. Dodałem swoje zmiany i przed mergem chciałem pobrac aktualne zmiany z mastera.
W czasie jak pracowałem nad taskiem, inne osoby robiły swoje zadania i zmergowały ich branche do mastera, więc muszę te zmiany pobrać przed moim mergem.
Wklepałem git pull origin master na moim branchu i dostaję wynik: fatal: Not possible to fast-forward, aborting.
Są różne rozwiązania w necie, ale chce się was spytać jaki jest prawidłowy, żebym przypadkiem coś nie #!$%@?ł przy masterze xD
#programista15k #programowanie #git #github
git rebase master
powinno wpisać zmiany z mastera przed Twoimi zmianami. Wtedy masz ładną liniową historię. Błąd przygit pull origin master
wygląda jakby coś się zmieniło w historii origin/master co powoduje, że nie możesz ściągnąć stamtąd zmian na swojego mastera w prosty sposób. Tak jakby ktoś nadpisał historię na origin masterze i teraz te@zibizz1: No właśnie to próbuję zrobić i nie mogę bo dostaję ten error.
@Yelonek: No właśnie ja się odłączyłem od mastera.
Może to wina tego, że jedni dociągają zmiany w ten sposób:
git merge --no-ff origin master
pull
irebase
to różne operacje. Mam wrażenie, że je mylisz. Pull służy do ściągania zmian z remote. Rebase służy do przepisania kolejności zmian.źródło: Zrzut ekranu 2023-07-24 124425
PobierzMerge czy rebase?
źródło: Screenshot 2023-07-24 at 12.46.32
Pobierzale ja preferuje
"git rebase main"
wczęsniej sie upewnił że wszystko jest aktualne
git
@zibizz1: A w tym wypadku gośc nie zmerguje swojego brancha do mastera/maina? xD
@famir96: Jak zmerguje to i kask po lewej stronie założy
git pull origin master --no-rebase
, rozwiązujesz konflikty i masz merge commit. Wszystko jest aktualne, mergowalne i bez zbędnego zachodu ( ͡° ͜ʖ ͡°)