W tutorialu Git, który przechodzę, git commit
jest używany do przechowywania wprowadzonych zmian.
Do czego git push
służy?
W tutorialu Git, który przechodzę, git commit
jest używany do przechowywania wprowadzonych zmian.
Do czego git push
sł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 pull
na ten temat (artykuł, o którym najpierw wspomniałem)
git push
można pracować. W rzeczywistości miejscem docelowym git push
moż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 master
lub git push ~/proj/clone.git master
na 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 push
przesyła aktualne zaktualizowane pliki lub jakiś specjalny plik „diff”?
git push
sł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 commit
zapisz 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 push
do wypychania zatwierdzeń dokonanych w lokalnym oddziale do zdalnego repozytorium.
git push
Polecenie 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 commit
z zapisaniem edytowanego pliku, git push
skopiujemy 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 add
i commit
jeś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 pull
wniosku, a kończę od git push
wniosku. 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 add
Polecenie 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 commit
zapisy 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 push
tych 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 add
i git commit
pozwala 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 commit
jest krok przed git push
uruchomieniem ich w tej kolejności, aby pomyślnie przenieść plik do github.
git commit
polega na zatwierdzeniu plików, które są przemieszczane w lokalnym repozytorium. git push
jest 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 pull
zrobić, abyś mógł odnieść sukces git push
.