Jak używać gałęzi Git do strukturyzowania projektu programistycznego

  • Owen Little
  • 0
  • 1392
  • 98
Reklama

Filmy i telewizja przedstawiają programowanie jako szaloną aktywność. Hacks Hollywood: najlepsze i najgorsze hakowanie w filmach Hacks Hollywood: najlepsze i najgorsze hackowanie w filmach Hollywood i hackowanie się nie układają. Podczas gdy hakowanie w prawdziwym życiu jest trudne, hackowanie filmów często polega na uderzeniu w klawiaturę, tak jakby Twoje palce wyszły z mody. . Minutnik bomby odlicza czas, a nerdy pomocnik, który był ciężarem do tego momentu, działa gorączkowo na laptopie. Kod leci przez ekran, dopóki nie trafi w ostatni klawisz powrotu z satysfakcją klekotać! Minutnik zatrzymuje się i znów wszystko jest w porządku na świecie. Ale programowanie nie jest takie. Obejmuje dokumenty projektowe, makiety interfejsu użytkownika i recenzje kodu. A przede wszystkim wiąże się to z próbami i błędami, zwłaszcza jeśli jesteś początkującym (jak ja).

Teraz możesz już być przekonany o wartości utrzymania kontroli nad projektami źródłowymi Co to jest Git i dlaczego powinieneś używać kontroli wersji, jeśli jesteś programistą Co to jest Git i dlaczego powinieneś używać kontroli wersji, jeśli jesteś programistą Jako programiści stron internetowych często pracujemy nad lokalnymi witrynami programistycznymi, a następnie przesyłamy wszystko po zakończeniu. To dobrze, gdy jesteś tylko ty, a zmiany są niewielkie,… Popełnienie tych wszystkich prób i błędów w repozytorium spowoduje duży i nieporządny projekt z wieloma poprawkami. Większość dokonanych przez Ciebie zmian będzie zawierać rzeczy, które są zepsute, więc po co je zapisywać? Git Oddział funkcja może pomóc utrzymać cały ten nieporządny kod z dala od rzeczy, o których wiesz, że działają.

W tym artykule przyjrzymy się, co oznacza rozgałęzienie kodu, jak to zrobić i jak zarządzać aktualizacjami “Główny” Oddział.

Tworzenie oddziału Git

Nauczyliśmy się z naszego wprowadzenia do kontroli źródła Zarządzaj wersjonowaniem plików jak programista z Git Zarządzaj wersjonowaniem plików jak programista z Git Programiści stworzyli systemy kontroli wersji (VCS) w celu rozwiązania problemów kontroli wersji plików. Przyjrzyjmy się teraz podstawom kontroli wersji przy użyciu najlepszego systemu, Git. że możesz utworzyć nowe repozytorium za pomocą następującego polecenia w terminalu:

git init

Po wykonaniu tej czynności tworzony jest ukryty katalog w bieżącej ścieżce o nazwie “.git.” Jeśli go nie widzisz, zapoznaj się z naszymi wcześniejszymi artykułami na temat przeglądania ukrytych. Łatwy sposób wyświetlania ukrytych plików i folderów w systemie Windows 10, 8.1 i 7. Łatwy sposób wyświetlania ukrytych plików i folderów w systemie Windows 10, 8.1 i 7 Chcesz zobaczyć ukryte pliki i foldery w systemie Windows? Oto jak pokazać je w Windows 10, 8.1 i 7, aby nic przed Tobą nie było ukryte. pliki Ukryj i znajdź dowolny plik w systemie Mac OS X Ukryj i znajdź dowolny plik w systemie Mac OS X Nie ma prostego sposobu szybkiego ukrywania lub ujawniania ukrytych plików w systemie Mac OS X, tak jak w systemie Windows - ale jest to możliwe. . Ten katalog zawiera wszystkie informacje potrzebne do przechowywania historii zmian twoich plików. Po skonfigurowaniu menedżera plików do pokazywania ukrytych plików możesz otworzyć folder .git i wyświetlić wiele podkatalogów. Jeden z nich nazywa się “ref” (pokazane na poniższym obrazku) i jego “głowy” podkatalog zawiera listę wszystkich gałęzi projektu. Na początku będziesz mieć tylko jeden, nazwany “mistrz.”

Katalog refs prowadzi rejestr gałęzi, ale nie samej gałęzi. Przynajmniej nie gałąź, którą jesteś aktualnie używam. Te pliki są przechowywane w katalogu roboczym (“~ / Temp / post-programowanie-git-branch” w powyższym przykładzie), abyś mógł uzyskać do nich dostęp w normalny sposób. W ten sposób tworzymy nasz pierwszy plik (o nazwie “first-file.txt”) w katalogu roboczym, tj. na zewnątrz katalog .git. Sprawdź to, używając zaufanych poleceń z poprzedniego wstępu, aby uzyskać artykuł. Zarządzaj wersjonowaniem plików jak programista z Git Zarządzaj wersjonowaniem plików jak programista z Git Programiści stworzyli systemy kontroli wersji (VCS), aby rozwiązać problemy z kontrolą wersji. Przyjrzyjmy się teraz podstawom kontroli wersji przy użyciu najlepszego systemu, Git. :

Widzimy teraz, że katalog roboczy zawiera dwa pliki, ten, który popełniliśmy, i jeden utworzony automatycznie przez git (zawiera właśnie wprowadzoną wiadomość zatwierdzenia).

Teraz utwórzmy nową gałąź git o nazwie “testowanie”:

testowanie gałęzi git

Sprawdzanie oddziału i praca w nim

Możemy wydać powyższe polecenie bez żadnych nazw, aby uzyskać listę wszystkich gałęzi, a także tego, którego aktualnie używamy (tj. Który jest “wyrejestrowany”):

Teraz, jeśli zbadamy strukturę katalogów, zobaczymy “.git / refs / heads” teraz ma dwa pliki, po jednym dla każdego “mistrz” i “testowanie.”

Każdy z nich jest listą zatwierdzeń, które składają się na gałąź. Na przykład, jeśli zbadamy “mistrz” oddział z “git log” polecenie, możemy zobaczyć linię dla każdego zatwierdzenia dokonanego w tej gałęzi.

Proces “Sprawdzać” gałąź oznacza, że ​​zmiany, które wprowadzisz w plikach, będą częścią tej gałęzi, ale nie inne gałęzie. Załóżmy na przykład, że sprawdzamy gałąź testową git za pomocą następującego polecenia:

testowanie kasy git

Następnie dodajemy wiersz tekstu do pliku first-file.txt, oczywiście zatwierdzając go później. Jeśli przełączysz się z powrotem na gałąź główną, zauważysz, że plik jest nadal pusty ( kot polecenie wyświetla zawartość pliku w terminalu):

Ale wracając do “testowanie” gałąź, plik nadal ma dodany tekst:

Ale wszystko, co widzimy we właściwym katalogu, to pojedynczy plik “first-file.txt.” Gdzie zatem są te dwie alternatywne wersje tego samego pliku? Katalog .git uwzględnia te zmiany, ale nie w oczekiwany sposób.

Jak Git przechowuje rzeczy

Jeśli miałbyś zbadać repozytorium dla innych systemów kontroli wersji, takich jak Subversion, okazałoby się, że przechowują one jedną kopię dla każdej wersji dla każdego pliku. Oznacza to, że jeśli masz repozytorium jednego pliku, a następnie utwórz dwie gałęzie, repozytorium zawiera dwie różne kopie tego pliku. W rzeczywistości używasz “kopia svn” jako polecenie utworzenia gałęzi w Subversion! Z drugiej strony git działa na zasadzie “zmiany.”

Wynik powyższego mówi nam całą zawartość “bagażnik samochodowy” (Wersja SVN z “mistrz”) został skopiowany. Spojrzenie w menedżerze plików potwierdza to:

The “.git / objects” katalog zawiera wszystkie te małe zmiany, a każda z nich jest śledzona za pomocą identyfikatora. Na przykład na poniższym obrazku zobaczysz pliki o długich nazwach w stylu identyfikatora. Każdy mieszka w folderze o nazwie zawierającej dwa znaki szesnastkowe (8c i 8d poniżej).

Razem te nazwy folderów i plików tworzą identyfikator konkretnej zmiany (w rzeczywistości skrótu SHA1). Możesz przeglądać ich zawartość za pomocą git cat-file dowództwo. Na podstawie ich zmodyfikowanych dat widzimy jeden początek “8d” był pierwszy i nic nie pokazuje. Podczas gdy ten się zaczyna “8c” zawiera wiersz tekstu, który dodaliśmy do pliku w pliku “testowanie” Oddział.

Na wynos jest to, że gałęzie git (w tym domyślne) “mistrz”) nie są oddzielne “lornetka składana” zawierające kopie plików. Są to raczej listy zmian wprowadzonych do plików w czasie. Jest to bardziej wydajne pod względem pamięci, ale wynik jest taki sam. Wszystko, co robisz (psujesz?) W gałęzi git, pozostaje tam, dopóki go nie połączysz.

Strategie łączenia z powrotem do głównego oddziału (usunąć, czy nie usunąć?)

Załóżmy, że masz istniejący projekt z wieloma plikami, które następnie rozgałęziłeś “testowanie,” i trochę nad tym popracowałem. Teraz chcesz przywrócić te zmiany do “mistrz” Oddział. Możesz wykonać następujące czynności z “mistrz” Oddział:

git merge testing

Pod warunkiem, że nie ma konfliktów, zmiana składający się z nowego tekstu będzie stosowany do “mistrz.” Wynik to “first-file.txt” będą identyczne w obu gałęziach. Jednak tak naprawdę nigdy nie było ich na przemian wersje pliku.

Teraz pojawia się pytanie, co zrobić z oddziałem? Istnieją dwie wspólne strategie postępowania z oddziałami.

  1. Jednym z nich jest utrzymanie gałęzi git “testowanie” bawić się w (pokazano powyżej). Wypróbowujesz niektóre rzeczy i, jeśli możesz sprawić, by działały, ponownie scalisz zmiany “mistrz.” Następnie możesz zakończyć pracę nad tym oddziałem, a nawet całkowicie się go pozbyć. To znaczy twój “mistrz” jest najbardziej stabilna wersja kodu, ponieważ powinien on zawierać tylko rzeczy, o których wiesz, że działają. Możesz również pomyśleć o tym podejściu jako o użyciu “gałęzie funkcji.” Wynika to z faktu, że ich celem jest udoskonalenie jednego (lub kilku) określonych dodatków do kodu.
  2. Innym podejściem jest wykonanie całej głównej pracy w “mistrz” rozgałęziać się, dokonując po drodze zobowiązań. Gdy będziesz zadowolony z funkcjonalności, utworzysz w niej gałąź, w której naprawisz błędy i tym podobne. Powoduje to więcej “gałąź wydania” (pokazano poniżej), ponieważ kończą się wraz z wydaniem. Oznacza to również twój “mistrz” gałąź jest zazwyczaj najbardziej niestabilna wersja twojego kodu.

Użyj dowolnej metody, która jest dla Ciebie najlepsza

Pierwsze podejście tutaj jest bardziej powszechne podczas pracy z git. Inne funkcje (w szczególności tagi) ułatwiają oznaczenie konkretnej migawki kodu jako “stabilny.” Lepiej nadaje się również do większych, współpracujących projektów. Ale pracując nad własnymi projektami, skorzystaj z tych, które są dla Ciebie najbardziej sensowne. Wspaniałą rzeczą w korzystaniu z git jest przechwytywanie wszystkich zmian, dzięki czemu zawsze możesz wrócić i znaleźć coś. A zorganizowanie projektu za pomocą gałęzi git sprawia, że ​​jest to trochę łatwiejsze.

Jak podchodzisz do oddziałów w swoich projektach? Czy używasz ich do eksperymentowania, a następnie wyrzucasz do kosza? Czy reprezentują szczegółową historię twojej pracy nad projektem?

Daj nam znać poniżej w komentarzach, jeśli masz sprytne sposoby radzenia sobie z oddziałami w swoich projektach git!




Jeszcze bez komentarzy

O nowoczesnej technologii, prostej i niedrogiej.
Twój przewodnik w świecie nowoczesnych technologii. Dowiedz się, jak korzystać z technologii i gadżetów, które nas otaczają każdego dnia i dowiedz się, jak odkrywać ciekawe rzeczy w Internecie.