30 najlepszych pytań i odpowiedzi na wywiad z Git, które musisz znać w 2022 r.

Opublikowany: 2021-01-04

Git zyskuje na popularności. Deweloperzy nieustannie pracują nad wydawaniem nowszych wersji aplikacji innej niż beta, aby naprawić błędy lub poprawić jej funkcjonalność. Git służy jako kontrola wersji, w której wszystkie zmiany są przechowywane w jednym centralnym repozytorium.

Każdy programista w zespole może przeglądać wersje, wprowadzać zmiany, a następnie je przesyłać. Świetnie sprawdza się również w przypadku osób pracujących w zdalnych zespołach lub pracujących w domu. Git jest używany nie tylko przez programistów. Nawet osoby niebędące programistami w zespole mogą go użyć, aby pobrać najnowszą wersję lub konkretną wersję aplikacji i użyć jej do testowania lub innych prac.

Tam, gdzie Git jest narzędziem wiersza poleceń, Git Hub jest centrum, w którym programiści zapisują swoje projekty i komunikują się z zespołem.

W związku z tym, mając wiedzę na temat Git, jest popyt, a wraz ze wzrostem popytu utworzyliśmy zestaw pytań do rozmowy kwalifikacyjnej Git, które pomogą Ci zabezpieczyć pracę. Aby ułatwić zrozumienie, podzielimy pytania do rozmowy kwalifikacyjnej GitHub na trzy sekcje – dla początkujących, średniozaawansowanych i zaawansowanych.

Spis treści

Podstawowe pytania do rozmowy kwalifikacyjnej Git

P.1) Wyjaśnij różnicę między SVN a Git

  • SVN to scentralizowane narzędzie do kontroli wersji należące do drugiej generacji, w przeciwieństwie do Git, który jest zdecentralizowanym narzędziem do kontroli wersji należącym do trzeciej generacji.
  • W SVN repozytorium po stronie serwera zapisuje historię wersji. W Git możesz skopiować całe repozytorium na swój komputer.
  • W SVN możesz zatwierdzać tylko wtedy, gdy jesteś online, w przeciwieństwie do Git, gdzie możesz zatwierdzać nawet w trybie offline.
  • Operacje ściągania i wypychania są wolniejsze w SVN w porównaniu z Git, gdzie jest to szybsze.
  • W SVN Twoja praca nie jest udostępniana, dopóki tego nie zrobisz, w przeciwieństwie do Git, który udostępnia automatycznie.

P.2) Co to jest Git?

Git umożliwia programistom i członkom zespołu śledzenie zmian wprowadzonych przez każdego. Pozwala także wrócić do starszych wersji. Jest to system rozproszonej kontroli wersji, który pomaga zespołowi wiedzieć, kto dokonał zmian oraz w jakim dniu i czasie. Ma swój własny zestaw zalet w porównaniu z innymi systemami kontroli wersji.

Największą zaletą Git jest to, że nie jest on zależny od centralnego serwera do zapisywania wszystkich wersji projektu. Deweloperzy mogą tworzyć klony (kopie) repozytorium na własnych systemach, co pokazuje całą historię. To szczególnie pomaga, gdy jest poważna awaria. W Git istnieje centralne repozytorium w chmurze, w którym programiści lub członkowie zespołu mogą zatwierdzać zmiany i udostępniać je swojemu zespołowi.

P.3) Jaka jest różnica między GitHub a Git?

Usługa hostingu repozytorium Git nazywa się GitHub. Poza tym ma swoje własne funkcje, takie jak internetowy interfejs graficzny. Co więcej, GitHub zapewnia również dostęp, a nie tylko służy jako narzędzie do zarządzania projektem.

Z drugiej strony Git to system kontroli wersji o charakterze rozproszonym. Służy głównie do śledzenia wszelkich zmian dokonanych w aplikacji innej niż beta. Oferuje szybkość, wsparcie i integralność danych. Deweloperzy i inni członkowie zespołu mogą zobaczyć, kto dokonał jakich zmian i kiedy.

P.4) Jakie są zalety korzystania z systemu kontroli wersji?

Pomaga zespołowi i jego członkom, ponieważ mogą pracować w dowolnym momencie, ponieważ System Kontroli Wersji daje im elastyczność w łączeniu wprowadzonych przez nich modyfikacji we wspólnej wersji bez żadnych kłopotów.

Historia pokazuje wszystkie starsze wersje i ich warianty, umożliwiając członkom zespołu powrót w razie potrzeby. Członkowie zespołu mają również migawkę całego projektu.

Członkowie zespołu muszą komentować, kiedy wprowadzają jakiekolwiek modyfikacje, co pomaga innym zrozumieć, jakie dokładnie zmiany sprawiają, że projekt jest bardziej zorganizowany. Nikt nie musi czekać na wyjaśnienia. Członkowie zespołu dokładnie wiedzą, kto zmienił wersję i dlaczego.

W przypadku niefortunnej awarii serwera rozproszony system VCS, taki jak Git, umożliwia uzyskanie pełnej historii projektu, ponieważ można ją pobrać na pulpit.

P.5) Jaki język jest używany w Git?

Językiem używanym przez Git jest język „C”, ponieważ prędkość wymagana przez GIT może być spełniony przez język „C”, ponieważ skraca on czas działania, w przeciwieństwie do innych języków wysokiego poziomu.

P.6) Opowiedz nam o niektórych funkcjach hostowania repozytorium Git

  • Github
  • Gitlab
  • SourceForge
  • Bitbucket
  • GitEnterprise

P.7) W jaki sposób angażujesz się w Git?

Aby napisać komunikat o zatwierdzeniu, musisz napisać polecenie „git commit -a”.

-a w wierszu poleceń polecenia git, aby zatwierdzić najnowszą zawartość wszystkich śledzonych plików, które zostały zmienione. Możesz użyć polecenia „git add <plik>” przed git commit -a, jeśli nowe pliki wymagają zatwierdzenia po raz pierwszy.

P.8) Jak możesz naprawić zepsuty zatwierdzenie?

Możesz użyć polecenia „git commit –amend”, aby naprawić zepsuty commit. Uruchamiając to polecenie, naprawia uszkodzony komunikat zatwierdzenia w edytorze.

Przeczytaj: Najpopularniejsze pytania do wywiadu z Nagios

P.9) Co oznacza repozytorium w Git?

Jest to miejsce, w którym Git zapisuje wszystkie pliki. Git ma możliwość przechowywania plików zarówno w zdalnym, jak i lokalnym repozytorium.

Q.10) Jak możesz stworzyć repozytorium?

Tworzenie repozytorium w Git jest proste. Musisz utworzyć katalog dla projektu, jeśli jeszcze tego nie zrobiłeś. Następnie musisz uruchomić polecenie „git init”. To polecenie tworzy katalog git w katalogu projektu.

Q.11) Wyjaśnij „nagie repozytorium” w Git?

Same repozytorium Git jest zwykle używane jako zdalne repozytorium, czyli udostępniasz je członkom zespołu lub innym osobom. Nie ma w nim drzewa roboczego, ponieważ nie ma żadnej pracy wykonanej w zdalnym repozytorium. W innych plikach nie ma żadnych plików, które będziesz edytować. W przeciwieństwie do tego, katalog roboczy zawiera podkatalog .git z całą historią wersji, a także z drzewem roboczym.

P.12) Co rozumiesz przez „konflikt” w git?

Zazwyczaj Git zarządza wszystkimi scaleniami, korzystając z funkcji automatycznego scalania. Ale może wystąpić konflikt, jeśli dwie oddzielne gałęzie otrzymają edycję dokładnie w tym samym wierszu pliku. Może się to również zdarzyć, gdy plik zostanie usunięty z jednej gałęzi, ale był edytowany w innej. Zdarzają się one, gdy pracujesz w środowisku zespołowym.

P.13) Co to jest drzewo git?

git is-tree reprezentuje obiekt drzewa zawierający tryb i nazwę elementu, a także wartość SHA-1 drzewa lub obiektu BLOB.

Pytania do rozmowy kwalifikacyjnej na poziomie średniozaawansowanym

P. 14) Jak rozwiązać konflikt, jeśli pojawia się on w Git?

Konflikt w Git można rozwiązać w następujący sposób:

  1. Określ, które pliki spowodowały powstanie konfliktu.
  2. Rozwiąż konflikt, wprowadzając zmiany w tym konkretnym pliku.
  3. Dodaj te pliki ponownie za pomocą polecenia git add.
  4. Użyj polecenia git commit, aby zatwierdzić plik.

P.15) Jeśli zatwierdzenie zostało już wypchnięte i upublicznione, jak można je przywrócić w Git?

W zależności od sytuacji możesz to zrobić na dwa sposoby:

  1. Możesz go całkowicie usunąć lub naprawić zły plik w nowym zatwierdzeniu, a następnie odesłać go z powrotem do zdalnego repozytorium. Jest to najczęściej stosowana metoda rozwiązania tego problemu. Po dokonaniu odpowiednich zmian w pliku, używając polecenia git commit -m „commit message”, zatwierdzasz go w zdalnym repozytorium.
  2. Alternatywnie możesz utworzyć nowe zatwierdzenie, które cofa wszystkie modyfikacje wprowadzone w złym zatwierdzeniu. Możesz to zrobić za pomocą polecenia git revert <nazwa złego zatwierdzenia>

Przeczytaj: Pytania i odpowiedzi podczas rozmowy kwalifikacyjnej Agile

P.16) Co to jest SubGit?

Jest to narzędzie umożliwiające migrację z SVN do Fit. Tworzy zapisywalny mirror Git lokalnego lub zdalnego repozytorium Subversion i korzysta zarówno z Subversion, jak i Git tak długo, jak chcesz. Możesz użyć SubGit do stworzenia dwukierunkowego mirrora Git-SVN istniejącego repozytorium Subversion. Możesz także szybko dokonać jednorazowego importu z Subversion do Git.

P.17) Jaka jest różnica między poleceniem git pull a poleceniem git fetch?

Polecenie Git pull pobiera wszystkie nowe zmiany lub zatwierdzenia z precyzyjnej gałęzi z centralnego repozytorium i aktualizuje gałąź docelową w lokalnym repozytorium.

Polecenie pobierania Git jest używane do czegoś podobnego, ale ma niewielką różnicę. Kiedy pobierasz, pobiera wszystkie nowe zatwierdzenia z określonej gałęzi i zapisuje je w nowej gałęzi w lokalnym repozytorium. Jeśli chcesz odzwierciedlić te zmiany w gałęzi docelowej, musisz wywołać git merge.

Zatem Git pull = git fetch + git merge.

P.18) Co to jest „indeks” lub „obszar przejściowy” w Git?

Obszar pośredni, w którym można sformatować lub przejrzeć zmiany przed zatwierdzeniem, nazywa się w Git obszarem indeksu lub przemieszczania.

P19) Co to jest git stash? Jak to stosujesz?

Są chwile, kiedy część pracy musi zostać wstrzymana, ponieważ musisz pracować nad inną gałęzią jako priorytet. W połowie wykonanej pracy nie można wykonać, ponieważ nie jest jeszcze w tym pełnym etapie, ale chcesz wrócić i pracować nad nią w krótkim czasie. Aby rozwiązać ten problem, git ukośnik oferuje pomoc.

Zapisuje to w stosie niedokończonych zmian, które możesz później uzupełnić i zatwierdzić. Aby wrócić do tej części pracy, wystarczy wywołać git stash, aby zastosować polecenie. Pobiera twoją pracę z miejsca, w którym ją zostawiłeś, do twojego katalogu roboczego.

Pytanie 20) Czym różni się git diff od „git status”?

'git diff' jest prawie podobny do 'git status'; jedyną różnicą, jaką oba mają, jest to, że ta pierwsza ujawnia różnice między różnymi zatwierdzeniami. '

Q.21) Czym różni się „git remote” od „git clone”?

Jeśli chcesz utworzyć wpis w swojej konfiguracji git, który zawiera nazwę dla określonego adresu URL, użyj „git remote add”. Z drugiej strony „git clone” tworzy nowe repozytorium git, kopiując istniejące znajdujące się pod adresem URL.

Przeczytaj: Najlepsze pytania i odpowiedzi podczas wywiadu React

P.22) Opisz strategie rozgałęziania

Każda firma ma własne strategie rozgałęziania. Oto niektóre z popularnych:

  • Rozgałęzienie funkcji — model gałęzi funkcji zapisuje wszystkie zmiany wprowadzone dla określonej funkcji wewnątrz gałęzi. Dopiero po dokładnym przetestowaniu ta gałąź jest łączona ze swoim masterem.
  • Rozgałęzienie wydania — gdy gałąź deweloperska osiągnie punkt, w którym jest w pewnym sensie gotowa do wydania; możesz go sklonować lub skopiować, aby utworzyć gałąź wydania. Po sklonowaniu nie jest do niego dodawana żadna nowa funkcja. Możesz tylko naprawić błędy, udokumentować to lub wykonać takie czynności, które są związane z jego ulepszaniem dla wydania. Po przetestowaniu łączy się ze swoim masterem i otrzymuje numer wersji. Dodatkowo powinien zostać ponownie scalony z gałęzią deweloperską, która mogła ruszyć do przodu od czasu wydania wydania.
  • Rozgałęzienie zadań — w tym modelu każde zadanie jest wykonywane na osobnym oddziale z kluczem zadania w nazwie oddziału. Można łatwo zobaczyć, który kod wykonuje dane zadanie, szukając klucza zadania w nazwie gałęzi.

Q.23) Wyjaśnij przepływ pracy w Gitflow?

Gitflow przechowuje historię konkretnego projektu, wykorzystując dwie długo działające równoległe gałęzie, które są masterem i rozwijają:

  • Master – To jest gotowy do pracy oddział. Wszystko jest testowane i zatwierdzane w tej branży.
  • Hotfix – te gałęzie służą do szybkiego poprawiania wydań produkcyjnych. Są prawie jak twoje gałęzie funkcji i gałęzie wydania; poza tym opierają się na mistrzu, a nie na rozwoju.
  • Develop — wszystkie gałęzie funkcji są scalane w tej gałęzi. To są te, które są testowane. Dopiero po rygorystycznych testach łączy się z gałęzią master.
  • Feature – każda nowa funkcja powinna znajdować się w swojej własnej gałęzi, która jest następnie umieszczana w gałęzi nadrzędnej, czyli gałęzi deweloperskiej.

P. 24) Jak można dowiedzieć się, czy gałąź jest scalona z masterem?

Poniższe polecenia pomagają dowiedzieć się, czy są scalone, czy nie:

git branch –merged – Wyświetla listę wszystkich oddziałów, które zostały połączone w bieżący oddział. Możesz wtedy sprawdzić, czy tak jest, czy nie.

git branch –no-merged – Alternatywnie możesz użyć tego polecenia, aby sprawdzić wszystkie gałęzie, które nie są połączone z jego gałęzią główną.

Q.25) Jak możesz usunąć plik z git bez usuwania go z systemu plików?

Musisz być ostrożny podczas dodawania plików do Git, aby nie dodać złych plików. Polecenie git rm usunie go zarówno z obszaru przemieszczania, jak i systemu plików, więc zamiast tego musisz użyć polecenia git reset.

Możesz użyć nazwy pliku resetowania git lub nazwy pliku echo >> .gitingore

Q.26) Wyjaśnij zmianę bazy i scalanie w Git?

Użyj polecenia rebase, aby zintegrować edycje z jednej gałęzi do drugiej. Jest używany jako alternatywa dla polecenia scalania. Jest to alternatywa dla polecenia „scal”. Różni się od scalania, ponieważ przepisuje historię zatwierdzeń w celu uzyskania prostej, uporządkowanej kolejności zatwierdzeń.

Pytania do rozmowy kwalifikacyjnej Git na poziomie zaawansowanym:

P.27) Jak zmiażdżyć ostatnie N zmian w pojedynczym zatwierdzeniu?

Istnieją dwa sposoby na zgniecenie ostatnich N zmian w jednym zatwierdzeniu, które są następujące:

Jeśli chcesz utworzyć nowy komunikat zatwierdzenia od początku, możesz użyć następującego polecenia:

git reset – soft HEAD~N &&git commit

Jeśli chcesz po prostu edytować nowy komunikat o zatwierdzeniu z połączeniem istniejących komunikatów o zatwierdzeniu, musisz pobrać te komunikaty i przekazać je do zatwierdzenia w Git, używając polecenia:

git reset –soft HEAD~N &&git commit –edit -m”$(git log –format=%B –reverse .HEAD@{N} )”

P.28) Jakie są kroki, aby zintegrować Jenkinsa z Git?

Krok 1: Musisz kliknąć pulpit nawigacyjny Jenkins, aby zarządzać przyciskiem Jenkins.

Krok 2: Kliknij przycisk Zarządzaj wtyczkami.

Krok 3: Na stronie wtyczek musisz wybrać wtyczkę GIT. Kliknij zainstaluj bez ponownego uruchamiania. Wtyczka jest pobierana automatycznie, w zależności od szybkości Twojego Internetu.

P.29) Wyjaśnij, co to jest Git na pół i jak go użyć, aby dostać się do źródła błędu?

Używając Git bisect, możesz dowiedzieć się, które zatwierdzenie spowodowało błąd, używając wyszukiwania binarnego. Polecenie dla Git bisect to git bisect <podpolecenie> <opcje>

algorytm wyszukiwania binarnego, to polecenie określa, które zatwierdzenie spowodowało błąd. Git bisect wybiera zatwierdzenie między dwoma punktami końcowymi, w których wprowadzono błąd. Musisz potrafić określić pomiędzy dobrym a złym commitem. Kontynuuje filtrowanie aż do znalezienia dokładnego zatwierdzenia.

P.30) Wyjaśnij reflog git?

Polecenie „reflog” pomaga śledzić każdą pojedynczą edycję, która została wykonana w referencjach repozytorium. Przechowuje historię danych oddziałów, a nawet przechowuje znaczniki do tych utworzonych lokalnie lub na zewnątrz .

To polecenie musi zostać wykonane w repozytorium, które posiada brakującą gałąź. W przypadku sytuacji ze zdalnym repozytorium należy uruchomić komendę reflog na systemie programisty, który miał gałąź.

Zdobądź stopnie inżynierii oprogramowania z najlepszych światowych uniwersytetów. Zdobywaj programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.

Wniosek

Mamy nadzieję, że pytania do rozmowy kwalifikacyjnej w Git Hub pomogą Ci w zdobyciu wymarzonej pracy. Oto najczęściej zadawane pytania przez ankietera Git. Życzymy wszystkiego najlepszego podczas rozmowy kwalifikacyjnej!

Przygotuj się na karierę przyszłości

Aplikuj teraz na studia magisterskie z inżynierii oprogramowania