Zrozumienie podstaw Git i GitHub [zamknięte]

201

Nie do końca rozumiem cel używania Git lub Github; Wiem, że pomaga śledzić zmiany i jest pomocny dla osób współpracujących z innymi ludźmi, ale nie współpracuję z nikim, więc nie wiem, czy byłoby to dla mnie pomocne.

Zwykle pracuję jako projektant / programista stron internetowych, ale nigdy nie muszę współpracować. Wiem, że w Git masz tworzenie, wypychanie, zatwierdzanie, tworzenie oddziałów itp. Dla każdego repozytorium, ale ...

  1. Jaka jest różnica między Git a GitHub?

  2. Czy git zapisuje każde repozytorium lokalnie (na komputerze użytkownika) i w GitHub?

  3. Czy możesz używać Git bez GitHub? Jeśli tak, jaka byłaby korzyść z korzystania z GitHub?

  4. Jak Git wypada w porównaniu z systemem tworzenia kopii zapasowych, takim jak Time Machine?

  5. Czy jest to proces ręczny, innymi słowy, jeśli nie zobowiązujesz się, nie wprowadzisz nowej wersji zmian?

  6. Jeśli nie współpracujesz i już korzystasz z systemu tworzenia kopii zapasowych, dlaczego miałbyś używać Git?

fs_tigre
źródło
może pomaga komuś zrozumieć różnice: pedrorijo.com/blog/git-init
pedrorijo91

Odpowiedzi:

254
  1. Jaka jest różnica między Git a GitHub?

    Git to system kontroli wersji; pomyśl o tym jak o serii migawek (zatwierdzeń) twojego kodu. Zobaczysz ścieżkę tych migawek w kolejności, w której zostały utworzone. Możesz tworzyć gałęzie do eksperymentowania i wracać do wykonanych migawek.

    GitHub to strona internetowa, na której możesz publikować swoje repozytoria Git i współpracować z innymi osobami.

  2. Czy Git zapisuje każde repozytorium lokalnie (na komputerze użytkownika) i w GitHub?

    Nie, to tylko lokalny. Możesz zdecydować o wypchnięciu (opublikowaniu) niektórych oddziałów w GitHub.

  3. Czy możesz używać Git bez GitHub? Jeśli tak, jaka byłaby korzyść z korzystania z GitHub?

    Tak, Git działa lokalnie, jeśli nie korzystasz z GitHub. Alternatywą dla korzystania z GitHub może być uruchomienie Git na plikach hostowanych na Dropbox, ale GitHub jest bardziej usprawnioną usługą, ponieważ został stworzony specjalnie dla Git.

  4. Jak Git wypada w porównaniu z systemem tworzenia kopii zapasowych, takim jak Time Machine?

    To inna sprawa, Git pozwala śledzić zmiany i proces rozwoju. Jeśli korzystasz z Git z GitHub, staje się on skutecznie kopią zapasową. Jednak zwykle nie przesuwasz cały czas do GitHub, w którym to momencie nie masz pełnej kopii zapasowej, jeśli coś pójdzie nie tak. Używam git w folderze zsynchronizowanym z Dropbox.

  5. Czy jest to proces ręczny, innymi słowy, jeśli nie zatwierdzisz, nie będziesz mieć nowej wersji wprowadzonych zmian?

    Tak, zatwierdzanie i pchanie odbywa się ręcznie.

  6. Jeśli nie współpracujesz i już korzystasz z systemu tworzenia kopii zapasowych, dlaczego miałbyś używać Git?

    • Jeśli napotkasz błąd między zatwierdzeniami, możesz użyć polecenia, git diffaby zobaczyć różnice między bieżącym kodem a ostatnim działającym zatwierdzeniem, pomagając zlokalizować błąd.

    • Możesz także wrócić do ostatniego działającego zatwierdzenia.

    • Jeśli chcesz spróbować zmiany, ale nie masz pewności, czy zadziała. Tworzysz oddział, aby przetestować zmianę kodu. Jeśli działa dobrze, łączysz go z główną gałęzią. Jeśli nie, po prostu wyrzuć gałąź i wróć do głównej gałęzi.

    • Przeprowadziłeś debugowanie. Przed zatwierdzeniem zawsze patrzysz na zmiany od ostatniego zatwierdzenia. Zobaczysz wyciąg z debugowania, którego zapomniałeś usunąć.

Pamiętaj, aby sprawdzić gitimmersion.com .

Davoud Taghawi-Nejad
źródło
5
Sekcja pierwsza w ostatnim akapicie jest naprawdę dobrym punktem. Kasa również git intersectw tym celu.
2
@ H2CO3 Czy masz na myśli git bisect?
Simon Whitaker
1
@SimonWhitaker Tak, to literówka.
47
  1. Jaka jest różnica między Git a GitHub?

    Linus Torvalds zabiłby cię za to. Git to nazwa napisanego przez niego programu do zarządzania wersjami. GitHub to strona internetowa, na której znajdują się repozytoria kodu źródłowego, którymi zarządza Git. Dlatego GitHub jest całkowicie niezwiązany z oryginalnym narzędziem Git.

  2. Czy git zapisuje każde repozytorium lokalnie (na komputerze użytkownika) i w GitHub?

    Jeśli zatwierdzisz zmiany, zapisuje się lokalnie. Następnie, jeśli naciśniesz zatwierdzenia, sotresuje je również zdalnie.

  3. Czy możesz używać Git bez GitHub? Jeśli tak, jaka byłaby korzyść z korzystania z GitHub?

    Możesz, ale jestem pewien, że nie chcesz samodzielnie konfigurować serwera git. Korzyści z GitHub? Cóż, łatwy w użyciu, wiele osób wie o tym, aby inni mogli znaleźć Twój kod i śledzić go / rozwidlać również w celu wprowadzenia ulepszeń.

  4. Jak Git wypada w porównaniu z systemem tworzenia kopii zapasowych, takim jak Time Machine?

    Git jest specjalnie zaprojektowany i zoptymalizowany pod kątem kodu źródłowego.

  5. Czy jest to proces ręczny, innymi słowy, jeśli nie zobowiązujesz się, nie wprowadzisz nowej wersji zmian?

    Dokładnie.

  6. Jeśli nie współpracujesz i już korzystasz z systemu tworzenia kopii zapasowych, dlaczego miałbyś używać Git?

    Zobacz # 4.

svick
źródło
5
W rzeczywistości możesz używać git całkowicie lokalnie. Jedynym powodem, dla którego warto użyć github, jest opublikowanie kodu źródłowego. Na przykład do współpracy. Jeśli nie chcesz tego robić, nie potrzebujesz serwera git.
Davoud Taghawi-Nejad
@ DavoudTaghawi-Nejad tak, ale jestem pewien, że OP miał na myśli „bez Github” jako „nie specjalnie z GitHub”. Uważam również, że z punktu 2 oczywiste jest, że możesz używać git tylko lokalnie.
4
@ DavoudTaghawi-Nejad Używam github jako kopii zapasowej, a nie do współpracy. W przypadku pożaru kod itp. Jest bezpieczny.
Thufir,
co to jest funkcja github follow i fork?
Mou
29
  1. Jaka jest różnica między Git a GitHub?

    Git to rozproszony system kontroli wersji. Zwykle działa w wierszu poleceń komputera lokalnego. Śledzi twoje pliki i modyfikacje tych plików w „repozytorium” (lub „repozytorium”), ale tylko wtedy, gdy każesz to zrobić. (Innymi słowy, Ty decydujesz, które pliki chcesz śledzić i kiedy zrobić „migawkę” jakichkolwiek modyfikacji).

    W przeciwieństwie do tego, GitHub to strona internetowa, która umożliwia publikowanie repozytoriów Git online, co może być przydatne z wielu powodów (patrz # 3).

  2. Czy Git zapisuje każde repozytorium lokalnie (na komputerze użytkownika) i w GitHub?

    Git jest znany jako „rozproszony” (a nie „scentralizowany”) system kontroli wersji, ponieważ można go uruchomić lokalnie i odłączyć od Internetu, a następnie „wypchnąć” zmiany do systemu zdalnego (takiego jak GitHub), kiedy tylko chcesz. Dlatego zmiany repo pojawiają się tylko w GitHub, gdy ręcznie powiesz Gitowi, aby je wypchnął.

  3. Czy możesz używać Git bez GitHub? Jeśli tak, jaka byłaby korzyść z korzystania z GitHub?

    Tak, możesz używać Git bez GitHub. Git to program „workhorse”, który faktycznie śledzi zmiany, podczas gdy GitHub po prostu hostuje twoje repozytoria (i zapewnia dodatkowe funkcje niedostępne w Git). Oto niektóre zalety korzystania z GitHub:

    • Zapewnia kopię zapasową plików.
    • Daje wizualny interfejs do nawigacji po repozytoriach.
    • Daje to innym ludziom sposób na poruszanie się po twoich repozytoriach.
    • Ułatwia to współpracę repo (np. Wiele osób uczestniczy w tym samym projekcie).
    • Zapewnia lekki system śledzenia problemów.
  4. Jak Git wypada w porównaniu z systemem tworzenia kopii zapasowych, takim jak Time Machine?

    Git tworzy kopie zapasowe plików, ale daje znacznie większą kontrolę niż tradycyjny system tworzenia kopii zapasowych nad tym, co i kiedy tworzysz kopię zapasową. W szczególności „zatwierdzasz” za każdym razem, gdy chcesz zrobić migawkę zmian, a to zatwierdzenie zawiera zarówno opis twoich zmian, jak i szczegółowe informacje o zmianach. Jest to optymalne dla kodu źródłowego, ponieważ można łatwo zobaczyć historię zmian dla dowolnego pliku na poziomie linia po linii.

  5. Czy jest to proces ręczny, innymi słowy, jeśli nie zatwierdzisz, nie będziesz mieć nowej wersji wprowadzonych zmian?

    Tak, jest to proces ręczny.

  6. Jeśli nie współpracujesz i już korzystasz z systemu tworzenia kopii zapasowych, dlaczego miałbyś używać Git?

    • Git wykorzystuje potężny system rozgałęziania, który umożliwia jednoczesną pracę nad wieloma niezależnymi liniami rozwoju, a następnie łączenie tych gałęzi w razie potrzeby.
    • Git umożliwia przeglądanie różnic między wierszami między różnymi wersjami plików, co ułatwia rozwiązywanie problemów.
    • Git zmusza cię do opisania każdego z twoich zatwierdzeń, co znacznie ułatwia wyśledzenie określonej poprzedniej wersji danego pliku (i potencjalnie powrót do poprzedniej wersji).
    • Jeśli kiedykolwiek potrzebujesz pomocy z kodem, śledzenie go przez Git i hostowanie w GitHub znacznie ułatwia komuś innemu zajrzenie do twojego kodu.

Aby rozpocząć korzystanie z Git, polecam książkę online Pro Git oraz GitRef jako przydatny przewodnik. Aby rozpocząć pracę z GitHub, lubię Bootcamp GitHub i ich przewodniki GitHub . Na koniec stworzyłem krótką serię filmów, aby przedstawić Git i GitHub początkującym.

Kevin Markham
źródło