Porównanie commitów między branchami – git show-branch

Jeśli pracujecie z kilkoma branchami, można czasami się trochę pogubić. Gdzie to skomitowaliśmy? Czy zrobiliśmy merge’a na odpowiedni branch? Aby porównać dwa branche można skorzystać z jakiejś aplikacji z GUI do obsługi gita np. SourceTree. Aplikacja ładnie wizualizuje nasze branche, jednak albo pokazuje jeden, albo wszystkie. Co zrobić jak chcemy porównać commity między dwoma konkretnymi branchami? Z pomocą przychodzi Nam polecenie git show-branch. (więcej…)

Bezpieczne (prawie zawsze) nadpisywanie zmian – git push –force-with-lease

Ostatnio w pracy miałem sytuację, że w commit message wpisałem zły numer taska z Azure DevOps (dawne Visual Studio Team Services). Przez to mój commit został połączony z nieprawidłowym zadaniem. Wiedziałem, że wszystko da się odkręcić przepinając w portalu na inny task. Jednak nie chciałem zostawić tego commit message ze złym numerem taska. Zauważyłem to od razu, więc również szybko zacząłem szukać czy mogę to poprawić na branchu zdalnym.

Zdawałem sobie sprawę, że mogę użyć git push --force i to na pewno zadziała, ale dodatkowo chciałem być pewien, że nic nie zepsuję. Wtedy przypomniało mi się, że w PDFie od Macieja Aniserowicza “10 Sekretnych Komend Gita, O Których Nie Masz Pojęcia” było chyba coś takiego opisanego. (więcej…)

Rebase podczas synchronizacji repozytorium – polecenie git pull –rebase

Wszystkie zmiany w kodzie, które robimy lokalnie w jakimś momencie musimy wrzucić do zdalnego repozytorium. Git nie pozwoli Nam wrzucić swoich zmian, jeśli nie mamy zsynchronizowanego repozytorium. Przed wrzuceniem naszej pracy musimy ściągnąć ostatnie commity wrzucone przez innych. Do ściągnięcia najnowszej wersji repozytorium służy polecenie git pull – o tym na pewno wszyscy wiedzą.

Jednak jak ono naprawdę działa? (więcej…)