W tutorialu Git, który przechodzę, git commitjest używany do przechowywania wprowadzonych zmian.
Do czego git pushsłuży?
W tutorialu Git, który przechodzę, git commitjest używany do przechowywania wprowadzonych zmian.
Do czego git pushsłuży?
Odpowiedzi:
Zasadniczo git commit„ rejestruje zmiany w repozytorium ”, a git push„ aktualizuje zdalne referencje wraz z powiązanymi obiektami ”. Tak więc pierwszy jest używany w połączeniu z lokalnym repozytorium, podczas gdy drugi służy do interakcji ze zdalnym repozytorium.
Oto ładne zdjęcie Olivera Steele , które wyjaśnia model git i polecenia:

Przeczytaj więcej na temat GitReady.comgit push i git pullna ten temat (artykuł, o którym najpierw wspomniałem)
git pushmożna pracować. W rzeczywistości miejscem docelowym git pushmoże być dowolne repozytorium git. Może znajdować się na lokalnym lokalnym dysku twardym w innym katalogu ( git remote add clone ~/proj/clone.git; git push clone masterlub git push ~/proj/clone.git masterna przykład) lub w repozytorium git obsługiwanym przez własny host.
Zasadniczo git commit wprowadza zmiany do lokalnego repozytorium, a git push wysyła zmiany do zdalnej lokalizacji.
git pushprzesyła aktualne zaktualizowane pliki lub jakiś specjalny plik „diff”?
git pushsłuży do dodawania zatwierdzeń dokonanych w lokalnym repozytorium do zdalnego - wraz z git pull, umożliwia ludziom współpracę.
Ponieważ git jest rozproszonym systemem kontroli wersji, różnica polega na tym, że zatwierdzenie spowoduje zatwierdzenie zmian w lokalnym repozytorium, podczas gdy wypychanie spowoduje wypchnięcie zmian do zdalnego repozytorium.
Zatwierdź : migawka | Changeset | History_record | Wersja | „Zapisz jako” repozytorium. Repozytorium Git = seria (drzewo) zatwierdzeń .
Lokalne repozytorium: repozytorium na twoim komputerze.
Zdalne repozytorium: repozytorium na serwerze ( Github ).
git commit: Dołącz nowe zatwierdzenie (ostatnie zatwierdzenie + zmiany etapowe ) do lokalnego repozytorium. (Wszystkie zatwierdzenia są przechowywane w/.git )
git push, git pull: Zsynchronizuj lokalne repozytorium z powiązanym repozytorium zdalnym . push- zastosuj zmiany z lokalnego na zdalny , pull- zastosuj zmiany ze zdalnego na lokalny .
git commitzapisz zmiany w lokalnym repozytorium.
git push aktualizuje się zdalne repozytorium z lokalnymi zmianami.
Trzy rzeczy do zapamiętania:
1) Katalog roboczy ----- folder, w którym znajdują się nasze pliki kodów
2) Lokalne repozytorium ------ To jest w naszym systemie. Kiedy po raz pierwszy wykonujemy polecenie COMMIT, tworzone jest to lokalne repozytorium. w tym samym miejscu, w którym znajduje się nasz katalog roboczy,
tworzony jest plik Checkit (.git).
Następnie, kiedy tylko dokonamy zatwierdzenia, spowoduje to zapisanie zmian, które wprowadzamy w pliku katalogu roboczego do lokalnego repozytorium (.git)
3) Zdalne repozytorium ----- Znajduje się poza naszym systemem, tak jak na serwerach zlokalizowanych w dowolnym miejscu na świecie. jak github. Po wydaniu polecenia PUSH kody z naszego lokalnego repozytorium są zapisywane w tym zdalnym repozytorium
Chcę tylko dodać następujące punkty:
Nie możesz wypychać, dopóki nie zatwierdzisz, ponieważ używamy git pushdo wypychania zatwierdzeń dokonanych w lokalnym oddziale do zdalnego repozytorium.
git pushPolecenie pobiera dwa argumenty:
Nazwa zdalna, na przykład origin
Nazwa gałęzi, na przykładmaster
Na przykład:
git push <REMOTENAME> <BRANCHNAME>
git push origin master
Bardzo prymitywna analogia: jeśli porównamy git commitz zapisaniem edytowanego pliku, git pushskopiujemy ten plik do innej lokalizacji.
Nie wyciągaj tej analogii z tego kontekstu - zatwierdzanie i wypychanie nie przypomina zapisywania edytowanego pliku i kopiowania go. To powiedziawszy, powinno się to odbywać dla celów porównawczych.
Łatwiej jest zrozumieć użycie poleceń git addi commitjeśli wyobrażasz sobie, że plik dziennika jest przechowywany w repozytorium na Githubie. Typowy plik dziennika projektu może dla mnie wyglądać następująco:
---------------- Day 1 --------------------
Message: Completed Task A
Index of files changed: File1, File2
Message: Completed Task B
Index of files changed: File2, File3
-------------------------------------------
---------------- Day 2 --------------------
Message: Corrected typos
Index of files changed: File3, File1
-------------------------------------------
...
...
...and so on
Zazwyczaj dzień zaczynam od git pullwniosku, a kończę od git pushwniosku. Wszystko w dziennym zapisie odpowiada temu, co dzieje się między nimi. Każdego dnia wykonuję jedno lub więcej logicznych zadań , które wymagają zmiany kilku plików. Pliki edytowane podczas tego zadania są wymienione w indeksie.
Każde z tych zadań podrzędnych (tutaj zadanie A i zadanie B) są indywidualnymi zatwierdzeniami. git addPolecenie dodaje pliki do listy „Lista plików Changed”. Proces ten nazywany jest także inscenizacją, aw rzeczywistości zapisuje zmienione pliki i dokonane zmiany. Te git commitzapisy komenda / finalizuje zmian i odpowiednią listę indeksu wraz z wiadomością, która może być wykorzystana do późniejszego wykorzystania.
Pamiętaj, że wciąż zmieniasz tylko lokalną kopię swojego repozytorium, a nie tę w Github. Następnie dopiero po wykonaniu git pushtych wszystkich zarejestrowanych zmian wraz z plikami indeksu dla każdego zatwierdzenia zostaniesz zalogowany w głównym repozytorium (na Github).
Na przykład, aby uzyskać drugi wpis w tym wyimaginowanym pliku dziennika, zrobiłbym:
git pull
# Make changes to File3 and File4
git add File3 File4
# Verify changes, run tests etc..
git commit -m 'Corrected typos'
git push
W skrócie, git addi git commitpozwala rozbić zmianę w głównym repozytorium na systematyczne logiczne podmienienia. Jak zauważyły inne odpowiedzi i komentarze, istnieje wiele innych zastosowań. Jest to jednak jedno z najczęstszych zastosowań i zasada działania Git, polegająca na wielostopniowym systemie kontroli wersji, w przeciwieństwie do innych popularnych, takich jak Svn.
git commit to tylko oficjalne zapisanie naszych zmian, dla każdego zatwierdzenia, który przekazujemy komunikatowi zatwierdzenia, po zakończeniu zatwierdzeń możemy go przesłać na odległość, aby zobaczyć naszą zmianę na całym świecie
co oznacza, że możemy wykonać wiele zatwierdzeń, zanim przejdziemy na zdalne (widzimy listę zatwierdzeń się wydarzyła, a także komunikaty) git zapisuje każde zatwierdzenie z identyfikatorem zatwierdzenia, który jest 40-cyfrowym kodem
i używam git push tylko wtedy, gdy chciałem zobaczyć moją zmianę zdalnie (tam po sprawdzeniu, czy mój kod działał w jenkins)
Zasadniczo git commit wprowadza zmiany do lokalnego repozytorium, a git push wysyła zmiany do zdalnej lokalizacji. Ponieważ git jest rozproszonym systemem kontroli wersji, różnica polega na tym, że zatwierdzenie spowoduje zatwierdzenie zmian w lokalnym repozytorium, podczas gdy wypychanie spowoduje wypchnięcie zmian do zdalnego repozytorium
źródło Google
http://gitref.org/basic/ ten link również będzie bardzo przydatny
w laika, git commitjest krok przed git pushuruchomieniem ich w tej kolejności, aby pomyślnie przenieść plik do github.
git commitpolega na zatwierdzeniu plików, które są przemieszczane w lokalnym repozytorium. git pushjest szybkie przewijanie do przodu gałęzi głównej strony lokalnej ze zdalną gałęzią główną. Ale scalenie nie zawsze się powiedzie. Jeśli pojawi się odrzucenie, musisz to pullzrobić, abyś mógł odnieść sukces git push.