brak odpowiedzi, ponieważ została już podana. tylko obserwacja. wydaje mi się, że zatwierdzenie powinno być naprawdę nazywane zapisem, a push powinno się nazywać zatwierdzeniem. Klasyczny problem ze scenariuszem nazewnictwa.
dublinx
Odpowiedzi:
1619
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)
@ben github to tylko jedno rozwiązanie do hostowania publicznego repozytorium „w chmurze”, z którym 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.
Santa
2
więc ... czy musisz najpierw pchać, czy najpierw zatwierdzać?
Kokodoko
5
@ Pie zaczyna się w twoim obszarze roboczym, gdzie modyfikujesz pliki. Następnie dodajesz je do indeksu, przypisujesz do lokalnego repozytorium i - w końcu
wypychasz
2
@ Mr.Hyde nie, to nie jest możliwe. Git jako kontrola wersji rozproszonej wymaga posiadania lokalnej kopii.
tanascius
215
zatwierdzanie : dodawanie zmian do lokalnego repozytorium
push : aby przesłać ostatnie zatwierdzenie (-a) na zdalny serwer
to mój drugi dzień korzystania z GIT. Gdy patrzę na powyższe odpowiedzi, wciąż nie widzę wyraźnego obrazu, ale twoja odpowiedź po prostu go uwydatnia. dzięki.
Bopha
1
Czy git pushprzesyła aktualne zaktualizowane pliki lub jakiś specjalny plik „diff”?
multigoodverse
27
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 .
Twoja odpowiedź jest w zasadzie identyczna z tą odpowiedzią , nie dodaje nic nowego.
7
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
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
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
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.
Niektóre osoby mogą chcieć wymuszać nacisk zamiast ciągnąć. To zależy od sytuacji. W rzeczywistości, jeśli jesteś oparty na zatwierdzeniach w oddziale, którego nie udostępniasz innym osobom (nawet na zdalnym repozytorium), ściąganie z pewnością nie jest tym, co chcesz zrobić.
Odpowiedzi:
Zasadniczo
git commit
„ rejestruje zmiany w repozytorium ”, agit 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.com
git push
igit pull
na ten temat (artykuł, o którym najpierw wspomniałem)źródło
git push
można pracować. W rzeczywistości miejscem docelowymgit 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
lubgit push ~/proj/clone.git master
na przykład) lub w repozytorium git obsługiwanym przez własny host.zatwierdzanie : dodawanie zmian do lokalnego repozytorium
push : aby przesłać ostatnie zatwierdzenie (-a) na zdalny serwer
źródło
Zasadniczo git commit wprowadza zmiany do lokalnego repozytorium, a git push wysyła zmiany do zdalnej lokalizacji.
źródło
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 zgit pull
, umożliwia ludziom współpracę.źródło
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
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 .źródło
git commit
zapisz zmiany w lokalnym repozytorium.git push
aktualizuje się zdalne repozytorium z lokalnymi zmianami.źródło
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
źródło
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:
źródło
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.
źródło
Łatwiej jest zrozumieć użycie poleceń git
add
icommit
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:Zazwyczaj dzień zaczynam od
git pull
wniosku, a kończę odgit 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. Tegit 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:
W skrócie,
git add
igit 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.źródło
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)
źródło
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
https://git-scm.com/docs/git-commit
źródło
w laika,
git commit
jest krok przedgit push
uruchomieniem ich w tej kolejności, aby pomyślnie przenieść plik do github.źródło
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 topull
zrobić, abyś mógł odnieść sukcesgit push
.źródło