Zaawansowany samouczek Git

Zaawansowany samouczek Git

Wdrażanie projektu za pośrednictwem zdalnego repozytorium pozwala elastycznie zarządzać każdym jego fragmentem. Poprawki błędów, aktualizacje funkcji, usuwanie plików, praca zespołowa, wkłady typu open source, wdrażanie kodu i nie tylko są teraz na wyciągnięcie ręki dzięki silnej wiedzy o Git.





Używasz Gita, ale chcesz dowiedzieć się więcej? Oto kilka bardziej zaawansowanych wskazówek Git, dzięki którym kontrola wersji projektu będzie dziecinnie prosta.





Oddział Gita

Gałąź Git uniemożliwia wypychanie bezpośrednio do gałęzi master. Jest to pomocne, jeśli zarządzasz projektem z zespołem programistów. Możesz utworzyć dowolną liczbę gałęzi Git, a następnie scalić je z gałęzią główną.





Utwórz gałąź Git

Aby utworzyć gałąź Git, użyj:

git branch branch_name

Przełącz się na gałąź Git

Posługiwać się Sprawdź aby przełączyć się na gałąź Git:



git checkout branch_name

Po przejściu do oddziału możesz etapować swoje zmiany za pomocą git add --all . Następnie zatwierdź je za pomocą git commit -m 'nazwa zatwierdzenia' Komenda.

Porównaj oddział z mistrzem

Użyj git diff Komenda:





git diff master..branch_name

Aby porównać określone pliki:

git diff master..testb -- main.html

Porównanie dwóch gałęzi jest podobne do porównania gałęzi z wzorcem:





git diff branch1..branch2

Aby zobaczyć różnice w określonym pliku między dwiema gałęziami:

git diff branch1..branch2 -- main.html

Wypychanie zmian do oddziału zdalnego

Możesz chcieć, aby inny programista przyjrzał się zmianom, które wprowadziłeś w pliku w Twojej lokalnej gałęzi przed opublikowaniem ich. Dobrą praktyką jest przeniesienie lokalnej gałęzi Git do zdalnej repliki, aby mogli się przyjrzeć.

Załóżmy, że utworzyłeś wcześniej oddział lokalny o nazwie zmiany . Możesz przełączyć się do tej gałęzi lokalnej, dostosować wszystkie pliki, które chcesz, a następnie umieścić i zatwierdzić w tej gałęzi.

Następnie możesz przekazać te zmiany do zdalnej wersji gałęzi:

git push origin changes

Scal zdalny oddział z masterem za pomocą pull request

Więc inny programista przeprowadził audyt zmian w zdalnym oddziale ( zmiany ). Ale chcesz połączyć go z gałęzią master i wprowadzić na żywo.

Pamiętaj, że twoja zdalna gałąź dziedziczy nazwę twojej lokalnej gałęzi Git ( zmiany ). Oto jak scalić zmiany:

Przejdź do gałęzi master:

git checkout master

Wyciągnij początek lub HEAD gałęzi ( zmiany ), aby połączyć go z gałęzią master:

git pull origin changes

Przekaż to scalenie na żywo do gałęzi głównej:

git push origin master

Zamiast tego użyj Git Merge

Aby scalić gałąź z wzorcem za pomocą wybrać się Komenda:

Przejdź do gałęzi master:

git checkout master

Połącz go z gałęzią ( zmiany ):

git merge changes

Następnie wypchnij scalenie na żywo do gałęzi master:

sortuj amazon według liczby recenzji
git push origin master

Upewnij się, że wymieniłeś zmiany z nazwą Twojego oddziału.

Gdy połączenie się powiedzie, możesz usunąć oddział lokalnie i zdalnie jeśli już go nie potrzebujesz:

Związane z: Jak zmienić nazwę oddziału w Git

Zmiana bazy Gita

Jeśli masz wiele gałęzi z przestarzałymi zatwierdzeniami, możesz zmienić bazę lub skoncentrować szef/ref. tych gałęzi, aby odziedziczyć szef/ref. zaktualizowanego.

Rebazowanie przydaje się zatem, gdy trzeba zaktualizować niektóre gałęzie o bazę aktualnej.

Zmiana bazy nie powinna być jednak częstą czynnością, zwłaszcza jeśli pracujesz z zespołem, ponieważ może to zakłócić cały przepływ pracy. Ale jeśli pracujesz sam i znasz swój przepływ pracy i gałęzie, zmiana bazy nie powinna siać spustoszenia, jeśli wiesz, gdzie i jak z niego korzystać.

Załóżmy na przykład, że masz dwie gałęzie; oddział1 i oddział2. Od pewnego czasu nie wprowadzałeś żadnych zmian w branch1. Ale konsekwentnie zatwierdzasz zmiany w branch2, w tym ostatnio.

Więc zdecydowałeś się przeprowadzić branch1 wraz z przepływem. Zmiana bazy branch1 na branch2 oznacza zatem, że każesz branch1 ignorować swoje poprzednie zatwierdzenia i dziedziczyć ostatnią zmianę dokonaną w branch2.

Oto jak możesz to zrobić:

Przełącz się na opuszczony oddział (gałąź 1):

git checkout branch1

Następnie zmień bazę branch1 na zaktualizowany branch2:

git rebase branch2

Git Squash

Git squash pozwala połączyć wiele zatwierdzeń w jedno. Pomaga, gdy biegasz git commit wiele razy na jednej aktualizacji. Praktycznym przykładem jest sytuacja, w której każda naprawa błędu lub refaktoryzacja kodu dla pojedynczej funkcji ma osobne zatwierdzenie.

Ale możesz nie chcieć wypychać zatwierdzenia HEAD z towarzyszącymi, ponieważ wszystkie mają ten sam cel. Zalecanym podejściem jest zgniecenie ich w jeden, aby uniknąć zamieszania podczas śledzenia zatwierdzeń.

Najlepszym sposobem na zgniecenie zatwierdzeń jest użycie interaktywnego trybu zmiany bazy. Spójrz na poniższy przykład, aby lepiej to zrozumieć.

W tym przykładzie załóżmy, że masz pięć poprawek błędów. I dla każdego z nich jest zobowiązanie. Oto jak możesz zmiażdżyć te pięć commitów w jedno:

Biegać git reflog aby wyświetlić kod skrótu swoich zatwierdzeń:

git reflog

Oto wynik w tym przypadku:

Teraz Twoim celem jest zmiażdżenie ostatnich pięciu zatwierdzeń, zaczynając od pierwsza poprawka aż do piąta poprawka .

Aby to zrobić, skopiuj kod skrótu zatwierdzenia tuż poniżej pierwsza poprawka ( 0a83962 ). Następnie wciśnij Q rzucić reflog .

Teraz biegnij git rebase --interactive na tym haszu.

git rebase --interactive 0a83962

Następnie Git otwiera interaktywny plik zmiany bazy, który wygląda tak:

Aby zmiażdżyć zatwierdzenia, z wyłączeniem pierwsza poprawka , wymienić wybierać z s dla każdego z pozostałych zatwierdzeń:

Zapisz i zamknij ten plik.

Następnie otwiera się inny plik, w którym możesz zmienić nazwę zgniecionego zatwierdzenia:

jak usunąć posty na facebooku

Wyczyść je i wpisz preferowaną nazwę zgniecionego zatwierdzenia:

Zapisz ten plik. Następnie zamknij go, a powinieneś otrzymać komunikat o powodzeniu w swoim terminalu.

Notatka: Interaktywny plik może zostać otwarty w terminalu. Ale jeśli korzystasz z systemu Windows, możesz zmusić terminal do globalnego otwierania plików w ulubionym edytorze tekstu, aby ułatwić sobie zgniatanie.

Aby to zrobić, otwórz wiersz poleceń i uruchom:

git config --global core.editor ''path to choice text editor' -n -w'

Git Fork kontra Git Clone

Rozwidlenie i klonowanie to dwa różne terminy w Git. Nie możesz rozwidlić swojego repozytorium, ponieważ już tam jest. Możesz jednak forkować repozytorium innych osób i później je sklonować.

Rozwidlenie repozytorium oznacza, że ​​pobierasz kopię czyjegoś repozytorium i czynisz je swoim. Gdy otrzymasz kopię tego repozytorium, możesz je sklonować tak, jak każde z repozytoriów git dla lokalnych zmian.

Oto jak sklonuj zdalne repozytorium na GitHub i zainicjuj pobieranie do lokalnego katalogu:

git clone https://github.com/username/repository_name.git/

Przywróć plik do stanu domyślnego

Jeśli chcesz wyczyścić zmiany w pliku po ostatnim zatwierdzeniu, możesz użyć przywracanie git Komenda:

git restore filename

Zmień zobowiązanie

Możesz wrócić do poprzedniego zatwierdzenia, jeśli zapomnisz dokonać zmian w niektórych plikach podczas ich przemieszczania.

Wprowadź zmiany w zapomnianym pliku. Następnie użyj git zmień aby przejrzeć zatwierdzenie:

git add file_forgotten
git commit --amend

Pliki usuwane ze sceny

Możesz usunąć określone pliki, które przygotowałeś do zatwierdzenia, używając idź rm Komenda:

git rm --cached filename

Możesz także usunąć kilka plików jednocześnie:

git rm --cached file1 file2 file3 file4

Pamiętaj, aby do każdego pliku, który zwalniasz, dołączyć odpowiednie rozszerzenie pliku. Na przykład zwykły plik tekstowy powinien być nazwapliku.txt .

Związane z: Jak wyczyścić Git i usunąć nieśledzone pliki

Resetowanie Gita

Za pomocą git reset jest przydatne, jeśli chcesz jednocześnie usunąć wszystkie pliki, które przygotowałeś do zatwierdzenia:

git reset

Git reset HEAD wskazuje jednak HEAD gałęzi na konkretne zatwierdzenie w twoim drzewie roboczym. Na przykład, jeśli nie wypchnąłeś jeszcze swojego obecnego zatwierdzenia, możesz wrócić do ostatnio wypchniętego zatwierdzenia:

git reset --soft HEAD~1

Zastępować --miękki z --twardy jeśli już wypchnąłeś aktualne zatwierdzenie:

git reset --hard HEAD~1

Idź Cofnij

w przeciwieństwie do Resetowanie Komenda, idź cofnąć się zachowuje integralność historii zatwierdzeń. Jest to przydatne, jeśli chcesz zmienić zatwierdzenie z powodu błędów lub błędów.

Nie porzuca docelowego zatwierdzenia ani nie tworzy nowego. Zamiast tego przywraca ostatnie zmiany, które wprowadziłeś, bez usuwania lub zmiany nazwy takiego zatwierdzenia. To świetny sposób na utrzymanie czystszych zatwierdzeń, a ponadto jest bezpieczniejszy niż ciągłe resetowanie.

Aby powrócić do zatwierdzenia:

git revert HEAD~1

Gdzie GŁOWA~1 wskazuje na konkretne zatwierdzenie w twoim drzewie roboczym.

Usuń śledzony plik lub katalog

Możesz użyć git rm -f aby usunąć wszystkie śledzone pliki w drzewie roboczym. Pamiętaj jednak, że Git nie może usunąć nieśledzonych plików, ponieważ nie buforuje ich.

Aby usunąć plik pomostowy:

git rm -f filename

Aby usunąć folder przemieszczony:

git rm -r -f foldername

Rejestrowanie Git

Aby wyświetlić swoje dzienniki i historię zmian w Git:

git log

Aby zarejestrować działania w określonym oddziale:

git log branch_name

Związane z: Jak sprawdzić historię projektu za pomocą git log

Czasami możesz chcieć powrócić do porzuconego zatwierdzenia. Aby wyświetlić porzucone zatwierdzenia, w tym te istotne:

git reflog

Aby wyświetlić logi referencyjne dla określonej gałęzi:

git reflog branch_name

Zarządzaj wersjami projektów jak profesjonalista z Git

Dzięki Gitowi, który oferuje wiele korzyści, możesz zdalnie zarządzać wydaniami projektów bez włamywania się do plików i folderów lokalnie w głównej gałęzi. Dodatkowo umożliwia łatwe prowadzenie projektów w zespole.

Jak już zauważyłeś, Git ma wiele funkcji, które możesz poznać. Ale uważaj, aby celowo korzystać z tych funkcji. W przeciwnym razie możesz skończyć z psuciem rzeczy. To powiedziawszy, nadal możesz uruchomić zdalne repozytorium demo i bawić się tymi funkcjami.

Udział Udział Ćwierkać E-mail Zarządzaj wersjonowaniem plików jak programista z Git

Programiści stworzyli systemy kontroli wersji (VCS) do rozwiązywania problemów z kontrolą wersji plików. Przyjrzyjmy się podstawom kontroli wersji przy użyciu najlepszego dzisiejszego systemu, Gita.

Czytaj dalej
Powiązane tematy
  • Programowanie
  • Tworzenie stron internetowych
  • GitHub
  • Poradniki kodowania
O autorze Idisou Omisola(94 opublikowane artykuły)

Idowu pasjonuje się każdą inteligentną technologią i produktywnością. W wolnych chwilach bawi się kodowaniem, a gdy się nudzi, przechodzi na szachownicę, ale od czasu do czasu uwielbia też oderwać się od rutyny. Jego pasja do pokazywania ludziom drogi do nowoczesnych technologii motywuje go do pisania więcej.

Więcej od Idowu Omisola

Zapisz się do naszego newslettera

Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!

Kliknij tutaj, aby zasubskrybować