10 zaawansowanych technik Git — KDnuggets

10 zaawansowanych technik Git – KDnuggets

Węzeł źródłowy: 3083811

10 zaawansowanych technik Git
Zdjęcie od autora
 

Czy zastanawiałeś się kiedyś, co możesz zrobić, aby wyglądać jak profesjonalista przed swoim menedżerem, korzystając z Git? W tym poście poznamy 10 zaawansowanych technik i skrótów Git, które zwiększą efektywność wersjonowania, utrzymywania i udostępniania kodu.

Prawdopodobnie znasz już podstawy zatwierdzania, wypychania, ciągnięcia i rozgałęziania w Git. Istnieje jednak wiele mniej znanych poleceń i funkcji, które mogą podnieść Twoje umiejętności. Po przeczytaniu tego będziesz miał w zanadrzu kilka sprytnych sztuczek, dzięki którym możesz zaimponować współpracownikom swoją biegłością w Git.

Dodawałeś i zatwierdzałeś pliki w ten sposób wiele razy, ale co jeśli powiem Ci, że można to zrobić w jednym wierszu z flagą `-am`? 

$ git add .
$ git commit -m "new project"

 

Zamiast tego spróbuj tego, a doda zmiany w pliku i utworzy zatwierdzenie za pomocą komunikatu. 

$ git commit -am "new project"

 

[master 17d7675] new project
4 files changed, 2 insertions(+), 1 deletion(-)

 

Możesz zmienić nazwę swojej bieżącej wiadomości zatwierdzenia, używając flagi `–amend` i napisać nową wiadomość. Pomoże Ci to w przypadku przypadkowych wiadomości.

$ git commit --amend -m "Love"

 

[master 7b7f891] Love
Date: Mon Jan 22 17:57:58 2024 +0500
4 files changed, 2 insertions(+), 1 deletion(-)

 

Możesz dołączyć dodatkowe zmiany do bieżącego zatwierdzenia przed wypchnięciem go do zdalnego repozytorium. Aby to zrobić, musisz dodać zmiany w pliku, a następnie zatwierdzić przy użyciu flagi `-amend`. Aby zachować poprzedni komunikat zatwierdzenia, po prostu użyj flagi „–no-edit”.

$ git add . 
$ git commit --amend --no-edit

 

[master f425059] Love
Date: Mon Jan 22 17:57:58 2024 +0500
6 files changed, 2 insertions(+), 34 deletions(-)

Jeśli chcesz wypchnąć lokalne zatwierdzenie i zastąpić zdalną historię bez rozwiązywania problemów, możesz użyć flagi `-force`. Należy jednak pamiętać, że używanie flagi siły nie jest zalecane i powinno być używane tylko wtedy, gdy jesteś całkowicie pewien, co robisz. Pamiętaj, że użycie flagi Force spowoduje przepisanie zdalnej historii.

$ git push origin master --force

 

Enumerating objects: 7, done.
Counting objects: 100% (7/7), done.
Delta compression using up to 16 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 357 bytes | 357.00 KiB/s, done.
Total 4 (delta 2), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To https://github.com/kingabzpro/VSCode-DataCamp.git
8f184d5..f425059  master -> master

Aby cofnąć zatwierdzenie w Git, możesz użyć polecenia „revert”. Jednak to polecenie nie usuwa żadnych zatwierdzeń. Zamiast tego tworzy nowe zatwierdzenie, które cofa zmiany wprowadzone przez pierwotne zatwierdzenie.

Użyjemy `log` z flagą `-oneline`, aby wyświetlić historię zatwierdzeń w krótszej formie. 

$ git log --oneline

 

f425059 (HEAD -> master, origin/master) Love
8f184d5 first commit

 

Aby powrócić do poprzedniego zatwierdzenia, używamy polecenia `git revert`, po którym następuje identyfikator zatwierdzenia. Spowoduje to utworzenie nowego zatwierdzenia ze zmianami z poprzedniego zatwierdzenia.

$ git revert 8f184d5

Chcesz zwiększyć swoją produktywność na GitHubie? Dzięki GitHub Code Spaces możesz teraz edytować i uruchamiać swój kod bezpośrednio w przeglądarce. 

Aby uzyskać dostęp do tej funkcji, po prostu przejdź do swojego ulubionego repozytorium, naciśnij klawisz kropki („.”) na klawiaturze, a nastąpi przekierowanie do interfejsu użytkownika VSCode.

 

10 zaawansowanych technik Git
Zdjęcie od autora
 

Możesz wprowadzić zmiany w kodzie i wypchnąć je do zdalnego repozytorium. Jeśli jednak chcesz uruchomić kod w terminalu, musisz uruchomić Codespace w chmurze. Darmowa wersja oferuje doskonałą opcję uruchamiania kodu Pythona w przeglądarce. Czy to nie wspaniałe? Właśnie dzisiaj się o tym dowiedziałem.

 

10 zaawansowanych technik Git
Zdjęcie od autora

Pracując nad projektem, możesz dodać pliki do obszaru tymczasowego, a następnie zatwierdzić je, aby zapisać bieżący postęp. Istnieje jednak inny sposób na łatwe zapisanie swojej pracy za pomocą polecenia `stash`. Kiedy używasz „skrytki”, zapisujesz swój bieżący postęp bez dodawania go do obszaru tymczasowego lub zatwierdzania. Dzięki temu możesz zapisać swoje postępy i przywrócić je, kiedy tylko zajdzie taka potrzeba.

Zapiszemy nasz bieżący postęp, podając nazwę i ukrywając ją. 

$ git stash save new-idea

 

Saved working directory and index state On master: new-idea

 

Możesz wyświetlić swoją listę skrytek i zanotować odpowiedni indeks, aby ją odzyskać.

$ git stash list

 

stash@{0}: On master: new-idea

 

Nasz zapas „nowych pomysłów” jest zapisywany pod indeksem 0. Aby go odzyskać, użyj tego polecenia:

$ git stash apply 0

 

On branch master
Your branch is up to date with 'origin/master'.

Masz możliwość zmiany nazwy domyślnej gałęzi na bardziej odpowiednią. W takim przypadku zmienimy nazwę „master” na „main”. 

$ git branch -M main

 

10 zaawansowanych technik Git
 

Możesz zweryfikować zmiany za pomocą następującego polecenia: 

$ git status

 

On branch main
Your branch is up to date with 'origin/master'.

Jeśli chcesz zobaczyć szczegółową historię wszystkich zatwierdzeń dokonanych w bieżącym repozytorium, możesz użyć polecenia `git log`. Jednak wynik może być trudny do odczytania. Aby uczynić go bardziej czytelnym, możesz użyć flag `graph`, `decorate` i `oneline`. Spowoduje to wyświetlenie zmian dokonanych w wielu oddziałach i sposobu ich łączenia.

$ git log --graph --decorate --oneline

 

10 zaawansowanych technik Git

Kilka razy przechodziłem do nowego oddziału i zapomniałem nazwy poprzedniego oddziału. W rezultacie musiałem użyć polecenia `git Branch -a`, aby wyświetlić listę nazw oddziałów. Istnieje jednak prostszy sposób powrotu do oryginalnej gałęzi, używając myślnika „-” po poleceniu `git checkout`.

Najpierw utworzymy nową gałąź Git „neo”.

$ git branch neo

 

Przeniesiemy się do oddziału „neo”.

$ git checkout neo

 

Switched to branch 'neo'

 

Aby wrócić do oryginalnej gałęzi, użyjemy następującego polecenia:

$ git checkout -

 

Switched to branch 'main'

Dowiedzieliśmy się o zastępowaniu zdalnego repozytorium. Dowiedzmy się, jak zastąpić repozytorium lokalne za pomocą repozytorium zdalnego.

Użyjemy polecenia `fetch`, aby pobrać najnowsze zmiany ze zdalnego repozytorium. 

$ git fetch origin

 

Następnie użyjemy polecenia „reset” z flagą „twardą”, aby zastąpić wszelkie lokalne zmiany wersją zdalną. Należy pamiętać, że spowoduje to trwałe odrzucenie wszelkich zmian lokalnych.

$ git reset --hard origin/master

 

HEAD is now at f425059 Love

 

Jeśli nadal istnieją nieśledzone pliki, można je usunąć za pomocą następującego polecenia:

$ git clean -df

Do napisania tego artykułu zainspirował mnie obejrzenie filmu pt YouTube przez Fireship. Podziwiam twórcę za umiejętność wyjaśniania skomplikowanych tematów w prosty sposób. Stosując jego metodę, dowiedziałem się wiele o funkcjach Gita.

W tym artykule omówiliśmy zaawansowane techniki Git, które są kluczowe dla analityków danych i inżynierów oprogramowania pracujących nad wspólnym projektem dotyczącym danych. Znajomość tych technik może pomóc uniknąć wypadków i znacznie szybciej rozwiązać problemy.

Mam nadzieję, że ten blog był dla Ciebie przydatny. Daj mi znać, jeśli chcesz przeczytać więcej postów zawierających informacje wielkości bajtów na temat powszechnie używanych narzędzi w świecie data science.
 
 

Abid Ali Awan (@ 1abidaliawan) jest certyfikowanym specjalistą ds. analityków danych, który uwielbia tworzyć modele uczenia maszynowego. Obecnie koncentruje się na tworzeniu treści i pisaniu blogów technicznych na temat technologii uczenia maszynowego i data science. Abid posiada tytuł magistra zarządzania technologią oraz tytuł licencjata inżynierii telekomunikacyjnej. Jego wizją jest zbudowanie produktu AI z wykorzystaniem grafowej sieci neuronowej dla studentów zmagających się z chorobami psychicznymi.

Znak czasu:

Więcej z Knuggety