Merge i rebase
Z panelu bocznego
Kliknij gałąź prawym przyciskiem, żeby dostać Zmerguj do bieżącej albo Zrebase'uj na — bądź Merge z opcjami…, gdy to właśnie zwykły merge raz po raz zawodzi; zobacz opcje merge'a.
Przeciągnij jedną referencję na drugą
Najszybszy gest w aplikacji: podnieś gałąź i upuść ją na inną. Gitcito otwiera małe menu z tym, co to upuszczenie mogłoby oznaczać, i nie robi nic, dopóki nie wybierzesz.

Działa w obu miejscach, gdzie pokazywane są referencje — na wierszach gałęzi, zdalnych i tagów w panelu bocznym oraz na kolorowych plakietkach referencji w samym grafie. Przeciągaj między nimi w dowolnej kombinacji; cel upuszczenia podświetla się, gdy nad nim wisisz.
| Upuszczenie | Oznacza |
|---|---|
| Zmerguj {source} → {target} | Przełącza na cel i wmerguje w niego źródło |
| Zrebase'uj {source} na {target} | Odtwarza commity źródła na wierzchu celu |
| Porównaj | Otwiera porównanie — nic nie zmienia |
Menu proponuje tylko to, co git potrafi. Merge commituje na cel, więc cel musi być lokalną gałęzią — nie da się zmergować do taga ani do referencji śledzącej zdalną. Rebase przepisuje źródło, więc źródło musi być lokalną gałęzią. Upuść tag na gałąź zdalną, a jedyne, co dostaniesz, to Porównaj, bo naprawdę tylko tyle da się zrobić.
Rebase najpierw prosi o potwierdzenie: nadaje każdemu odtworzonemu commitowi nowy hash, co oznacza force push, jeśli gałąź jest już opublikowana. Merge nie pyta — on tylko dokłada. Tak czy inaczej jedno Cofnij przywraca cię na miejsce.
Merge
Fast-forward, kiedy się da, albo wymuszony commit scalający, kiedy chcesz mieć zapisaną topologię. Jeśli wejdzie w konflikt, lądujesz w edytorze konfliktów.
Porównanie dowolnych dwóch referencji
Wybierz bazę i referencję do porównania — gałąź, tag albo surowy SHA, z przyciskiem zamiany miejscami — a dostaniesz liczniki przed/za, commity unikalne dla każdej ze stron, pełny zbiorczy diff i przekazanie jednym kliknięciem do otwarcia PR-a.

Dostępne z panelu bocznego (porównanie z bieżącą gałęzią), z menu Narzędzia albo przez ⌘K.
Cherry-pick, revert, reset
Cherry-pick i revert mieszkają w menu kontekstowym grafu, tak jak zawsze. Reset to jedna pozycja — Zresetuj do commita… — zamiast trzech surowych wpisów soft/mixed/hard, które sobie nawzajem przeczyły.
Amend, cofnięcie i reset siedzą na górze menu pojedynczego commita i pozostają widoczne, gdy są niebezpieczne: dezaktywują się, a podpowiedź mówi dlaczego. Cofnięcie jest tylko dla niewypchniętego HEAD; amend jest dozwolony także na opublikowanym HEAD, ale ostrzega, że potrzebny będzie force push. Reset sięga tylko lokalnych przodków plus pierwszego opublikowanego commita — nie dowolnej starszej historii.
Dialog resetu mówi wprost, który to tryb:

| Tryb | Rezultat |
|---|---|
| Soft | Zachowaj zmiany w indeksie |
| Mixed | Zachowaj zmiany poza indeksem |
| Hard | Odrzuć commity i ich zmiany |
Hard nigdy nie jest wstępnie zaznaczony. Brudne drzewo robocze dostaje dodatkowe ostrzeżenie, bo reset może nadpisać pracę w toku albo wejść z nią w konflikt. Zobacz na GitHubie mieszka przy akcjach kopiowania i otwiera się tylko dla opublikowanych commitów na zdalnym github.com.
Zaznacz najpierw wiele commitów, a cherry-pick zastosuje całe zaznaczenie, po kolei.
Zanim cokolwiek zmergujesz
Radar konfliktów skanuje każdą gałąź względem bazy i mówi ci, które będą się biły, nie przełączając się na żadną z nich.
Zobacz też: Rebase interaktywny · Gałęzie w stosie · Radar konfliktów