Różnice między zatwierdzaniem, zatwierdzaniem i wypychaniem, zatwierdzaniem i synchronizacją

149

Używam programu Visual Studio 2013 i mam do czynienia z 3 opcjami, gdy zatwierdzam kod C #. Potrzebuję wyjaśnienia różnic między każdą z opcji w odniesieniu do tego, co dzieje się z moim lokalnym repozytorium w porównaniu z repozytorium GitHub.

  • Opcja 1 mówi Commit
  • Opcja 2 mówi Commit and Push
  • Opcja 3 mówi Commit and Sync

Nie do końca rozumiem różnicę między dwiema ostatnimi opcjami. Kiedy należy używać Commit and Sync w przeciwieństwie do Commit and Push?

Alfred Waligo
źródło

Odpowiedzi:

216
  1. Commit po prostu zapisze zmiany, które wprowadziłeś na komputerze lokalnym. Nie zaznaczy zmiany w zdalnym repozytorium.
  2. Commit i Push wykonają powyższe czynności i wypchną je do zdalnego repozytorium. Oznacza to, że wszelkie wprowadzone zmiany zostaną również zapisane w zdalnym repozytorium.
  3. Commit and Sync robi trzy rzeczy. Po pierwsze, popełni. Po drugie, wykona ściąganie (pobiera zaktualizowane informacje ze zdalnego repozytorium). Wreszcie będzie naciskać.

Zobacz więcej informacji od firmy Microsoft tutaj

camiblanch
źródło
Naprawdę nie widzę opcji „Zatwierdź i zsynchronizuj” Po pierwsze, zostanie zatwierdzona. Po drugie, wykona pociągnięcie W końcu popchnie. Dlaczego wypychanie jest wymagane tutaj, gdy zmiany kodu są już zatwierdzone w zdalnym repozytorium (brak zmian do wypychania).
Bhuwan Pandey
6
@BhuwanPandey Wykonanie „zatwierdzenia” nie obejmuje „wypychania”. Są oddzielne. Tylko „push” zaktualizuje twoje zatwierdzenie do zdalnego repozytorium. Zobacz obraz w drugiej odpowiedzi, aby to zobaczyć. „Zatwierdzenie” przechodzi z indeksu do lokalnego repozytorium, natomiast „wypychanie” kończy się przejściem z lokalnego repozytorium do zdalnego repozytorium
camiblanch
Czy operacja synchronizacji może powodować konflikty, gdy wielu użytkowników pracuje jednocześnie w aplikacji?
Murali Dhar Darshan
Używam programu Visual Studio 2017, a polecenie Commit and Sync nie wypycha całkowicie zmian. Mówię to, ponieważ wykonując synchronizację, moje zmiany są wyświetlane na karcie historii w Visual Studio, ale na stronie Github się nie pojawia. Musiałem wykonać polecenie Push po Commig and Sync, a potem moje zmiany pojawiły się na stronie Github.
Fabiano
Myślę, że zamieszanie wynika z myślenia, że ​​Commit wysyła pliki do zdalnego repozytorium. W rzeczywistości Commit jedynie rejestruje twoje zmiany w lokalnym repozytorium. Bez Push nigdy nie trafia na serwer.
Alan Baljeu
72

Aby dodać do odpowiedzi camieblancha. Znalazłem to pomocne zdjęcie / post od tanasciusa ( tutaj ). „Oto ładne zdjęcie Olivera Steele, które wyjaśnia model git i polecenia:” wprowadź opis obrazu tutaj

A.sharif
źródło
1
Ale gdzie na tym zdjęciu jest Synchronizacja?
Alan Baljeu
2
Nie istnieje na zdjęciu. Jeśli powrócisz do odpowiedzi „camiblanch”. Zatwierdza lokalne repozytorium, pociąga, aby zsynchronizować (scalić) zdalne repozytorium z lokalnym repozytorium, a następnie wypycha scalone lokalne repozytorium do zdalnego repozytorium.
A.sharif