Przewodnik po zrozumieniu gitk? [Zamknięte]


83

Przedstawiam git zespołowi programistów i uważam, że gitk jest niesamowitym narzędziem. Jest to również dość trudne do zrozumienia, ponieważ zrozumienie gitk wymaga zrozumienia zarówno historii git, jak i samego narzędzia przeglądarki.

Czy ktoś ma jakieś dobre odniesienia do czegoś takiego jak „przewodnik dla początkujących po historii git z gitk”?



Blog lostechies.com/joshuaflanagan/2010/09/03/ ... przedstawia prezentację gitk i może pomóc w zrozumieniu menu gitk wyświetlanego po kliknięciu prawym przyciskiem myszy.
— koppor

Odpowiedzi:


93

Nigdy nie widziałem niczego specjalnie dla gitk. Oto próba z punktu widzenia „jak to działa”. Znajomość poleceń, które stoją za wszystkim (lub przynajmniej ogólnie ich odpowiedników), pomaga nauczyć się korzystać z narzędzi wiersza poleceń, a także pokazuje, gdzie szukać w dokumentacji, aby lepiej zrozumieć gitk!

Menu Plik

Zmieniło się to nieco w ciągu ostatnich kilku głównych wersji - opisuję obecny stan.

  • aktualizuj i przeładuj: To prawdopodobnie najbardziej zagmatwana rzecz. Przeładuj odświeża wszystko tak, jakbyś uruchomił program od nowa z tą samą konfiguracją. Oznacza to, że jeśli gałąź została usunięta / zmieniona, jeśli niektóre zatwierdzenia teraz wiszą, nie widzisz ich już. Z drugiej strony Update odświeża wszystkie informacje, ale nadal pokazuje wszystkie zmiany, które zostały wcześniej pokazane. Jest to doskonała opcja, jeśli chcesz zmienić bazę i chcesz mieć pewność, że nie zepsułeś - możesz zobaczyć zarówno wersję oryginalną, jak i zmienioną.

  • odniesienia: dość oczywiste. Odniesienia obejmują tagi i gałęzie (które mogą być zdalne). Możesz je ponownie przeczytać i wyświetlić listę, aby kliknąć konkretny, aby wyświetlić go w historii.

Wyświetlenia

Jak mówi strona podręcznika, gitk używa opcji git-rev-list, aby pomóc określić, jaka historia powinna być pokazana. Można je również ustawić interaktywnie w menu „Widok”. Strona podręcznika jest doskonałym miejscem, aby znaleźć więcej informacji o sposobach kontrolowania widoków (głównie w sekcji ograniczającej zmiany). Jeśli spojrzałeś git-logwcześniej, zobaczyłeś dużo tego.

Wsparcie

Tutaj jest lista skrótów klawiszowych! Słodkie.

Menu kontekstowe

Przedstawia kilka typowych poleceń git porcelain, ogólnie w zwykłym / domyślnym trybie działania. Ich lista przynajmniej pomoże ci znaleźć odpowiednią dokumentację, aby zrozumieć, co robią, jeśli jeszcze tego nie zrobiłeś!

  • git-diff (Porównaj to <-> zaznaczone
  • git-format-patch (stwórz łatkę)
  • git-tag (utwórz tag)
  • git-diff-tree (zapisz zatwierdzenie do pliku, rzadko używane)
  • git-branch
  • git-cherry-pick
  • git-reset (resetuj gałąź do tego miejsca) To zapyta o miękkie, mieszane lub twarde, z krótkim przypomnieniem, co każdy robi. Dłuższy opis na stronie podręcznika, ale oczywiście musisz zrozumieć pojęcie indeksu, aby go naprawdę uzyskać.

W tym momencie polecenie „zaznacz zatwierdzenie” i powiązane polecenia powinny być oczywiste.

W menu kontekstowym dla gałęzi mamy git-checkout i -dtryb (usuwania) git-branch.

Środkowa sekcja

  • Identyfikator SHA1: skrót bieżącego zatwierdzenia. Bardzo przydatne do kopiowania / wklejania do terminala, aby wykonać akcję na danym zatwierdzeniu, do którego znalezienia użyłeś gitk. Możesz również wkleić tutaj skróty.

  • Przyciski do przodu / do tyłu, numer wiersza ... oczywiste!

  • Odnaleźć! Opcje tutaj są znowu dość oczywiste, ale dla edukacji wszystkich są analogiczne do parametrów git-log : „zawierający” to --grep, „dotykające ścieżki” to argumenty, a dodawanie / usuwanie łańcucha to -S(kilof).

Okienko wiadomości / różnic

Tutaj mamy wiadomość o zatwierdzeniu wraz z wyjściem git-diff - to jest coś w rodzaju używania git-log -p, z odrobiną dodatkowych:

  • „Oddziały” to odpowiednik git branch -a --contains=<commit>

  • „Poprzedza” / „Obserwuje” jest równoważne z git describe [--contains] <commit>( git-opisać )


W porządku dla poleceń menu gitk, +1 do tego. Dobrze sobie radzisz z częścią „gitk”, ale naprawdę liczyłem na wyjaśnienie połączenia gitk i historii.
— krosenvold

Chciałbym, żeby to była lepsza odpowiedź! Chyba nie rozumiem zbyt dobrze, co masz na myśli, mówiąc o wyjaśnieniu historii git. Czy to koncepcja rozgałęziania i łączenia wymaga wyjaśnienia? Fakt, że zatwierdzenia zależą bezpośrednio od poprzedniego zatwierdzenia poprzez ich hash? Wydaje się, że kiedy dosłownie zobaczysz historię na ekranie, nie ma wiele do wyjaśnienia.
— Cascabel

Przepraszam, może jestem tępy, ale nie rozumiem, jak po prostu git commit -alub nawet git addw gitk. Czy jest coś, czego mi brakuje?
— ubershmekel

2
@ubershmekel gitk nie robi żadnej z tych rzeczy; jeśli chcesz mieć dla nich GUI, wbudowany jest git gui. To pytanie dotyczy jednak tylko gitk, a gitk jest zasadniczo narzędziem do przeglądania historii (z odrobiną manipulacji gałęziami).
— Cascabel

24

Oto wprowadzenie do wizualizacji historii gałęzi w gitk ze zrzutami ekranu.

http://lostechies.com/joshuaflanagan/2010/09/03/use-gitk-to-understand-git/

  1. Lewy górny panel pokazuje serię zatwierdzeń do tego repozytorium, z najnowszymi na górze.
  2. Były trzy zatwierdzenia, wszystkie przez Tony'ego Starka.
  3. Komunikat zmiany dotyczący ostatniego zatwierdzenia to „trzecie zatwierdzenie”
  4. Istnieje jedna gałąź lokalna o nazwie „master”, która wskazuje na najnowsze zatwierdzenie
  5. Istnieje jedna zdalna gałąź referencyjna: gałąź „master” ze zdalnego repozytorium o nazwie „origin”, wskazuje również na najnowsze zatwierdzenie
  6. Żółta kropka obok górnego zatwierdzenia wskazuje, że jest to migawka aktualnie znajdująca się w moim folderze roboczym (nazywana HEAD)
  7. Podkreśliłem drugie zatwierdzenie, więc mogę zobaczyć jego szczegóły w dolnym okienku
  8. SHA zatwierdzenia (unikalny identyfikator, podobny do numeru wersji
    podwersji ) drugiego zatwierdzenia to 3d024dd9e4a83d8c6a9a143a68b75d4b872115a6
  9. W prawym dolnym rogu wyświetlana jest lista plików, na które ma wpływ drugie zatwierdzenie
  10. Dolny lewy pokazuje szczegóły zatwierdzenia, w tym pełną różnicę
  11. Kliknięcie pliku w prawym dolnym panelu powoduje przewinięcie różnicy w lewym dolnym panelu do odpowiedniej sekcji 12.

3

To, czego nowicjusze naprawdę mogliby użyć w odniesieniu do „połączenia gitk i historii”, to konkretne wyjaśnienie, jak rozpoznać, co się stało, patrząc na widok drzewa gitk.

O ile mi wiadomo - właściwy sposób patrzenia na drzewo to (oczywiście):

 1. each node is a commit
 2. ultimate parent is at the bottom
 3. direct child to a commit is the one that happened first in the same branch (no matter who did it)
 4. the node with 2 or more children indicates ... ?
 5. merge commit node has 2 parents.
 6. rebase is recognized ... ?

Zrzuty ekranu również byłyby mile widziane.

Drzewo faktycznie reprezentuje aktualny stan repozytorium. Byłoby wspaniale, gdybyśmy mogli powiedzieć, co się stało, patrząc na widok drzewa.

Dzięki

v.


1
4. ... gałąź, 6. ... wcale, ponieważ po prostu zmienia kolejność istniejących zatwierdzeń
— centic

1

Jedyne, co uważam za przydatne w interfejsie gitk, to ładny (kolorowy) przegląd gałęzi.

Jeśli chcesz mieć GUI dla git, sprawdź TortoiseGit w systemie Windows lub GitX na Macu lub QGit w systemie Linux.


4
Myślę, że to trochę pośpieszny osąd. Jasne, kreator działań jest fajny, ale brakuje wielu wbudowanych rzeczy w menu kontekstowym gitk. gitk zapewnia bardzo łatwy sposób manipulowania gałęziami dzięki wizualnej informacji zwrotnej, co jest szczególnie przydatne dla nowych użytkowników.
— Cascabel

1
Bardziej lubię CLI, ale czasami wywołuję gitk tylko po to, aby zobaczyć gałęzie i połączenia. Nie polecałbym interfejsu gitk nowym użytkownikom .. Prawdopodobnie ich odstraszysz?
— Davy Landman

O dziwo, myślę, że oboje macie rację.
— innaM
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.