Jakie są różnice pomiędzy "git commit" i "git push"?
W tutorialu Gita, przez który przechodzę, git commit
jest używany do przechowywania wprowadzonych zmian.
Do czego służy git push
?
15 answers
Zasadniczo git commit
"zapisuje zmiany w repozytorium " podczas git push
"aktualizuje zdalne refy wraz z powiązanymi obiektami ". Tak więc pierwszy z nich jest używany w połączeniu z lokalnym repozytorium, podczas gdy drugi jest używany do interakcji ze zdalnym repozytorium.
Oto ładne zdjęcie z Olivera Steele ' a , które wyjaśnia model Gita i komendy:
Czytaj więcej o git push
i git pull
na GitReady.com (artykuł I refered to first)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-01 12:51:02
Commit : Dodawanie zmian do lokalnego repozytorium
Push: aby przenieść ostatnie zmiany na zdalny serwer
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-23 17:58:05
Cóż, zasadniczo git commit umieszcza twoje zmiany w lokalnym repo, podczas gdy git push wysyła Twoje zmiany do zdalnej lokalizacji.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-30 14:21:32
git push
służy do dodawania commitów zrobionych w lokalnym repozytorium do zdalnego-razem z git pull
, pozwala ludziom na współpracę.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-18 05:41:04
Ponieważ git jest rozproszonym systemem kontroli wersji, różnica polega na tym, że commit zatwierdzi zmiany do lokalnego repozytorium, podczas gdy push wypchnie zmiany do zdalnego repo.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-30 14:20:55
git commit
Zapisz swoje zmiany w repozytorium local .
git push
zaktualizuj zdalne repozytorium za pomocą lokalnych zmian.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-23 17:56:38
Commit : {Snapshot | Changeset | History record | Version / 'Save-as'} repozytorium. Repozytorium Git = series (tree) of commits (plus kilka dodatkowych rzeczy).
Local repository: repozytorium na twoim komputerze.
Remote repozytorium: repozytorium na serwerze (np Github ).
git commit
: Dodaj nowy commit (Ostatni commit + modyfikacje) do repozytoriumlocal .
git push
, git pull
: Zsynchronizuj repozytorium lokalne z repozytorium zdalnym . push
- apply changes from local into remote, pull
- Zastosuj zmiany z remotena local.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-28 18:14:00
Chcę tylko dodać następujące punkty:
Yon nie może naciskać dopóki nie zatwierdzisz zmian, ponieważ używamy git push
do wypychania zmian dokonanych w Twojej lokalnej gałęzi do zdalnego repozytorium.
Komenda git push
przyjmuje dwa argumenty:
Nazwa zdalna, na przykład origin
Nazwa gałęzi, na przykład master
Na przykład:
git push <REMOTENAME> <BRANCHNAME>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-27 19:52:27
Trzy rzeczy do zapamiętania:
1)Working Directory ----- folder, w którym znajdują się nasze kody
2)repozytorium lokalne ------ to jest wewnątrz naszego systemu. Kiedy pierwszy raz robimy
COMMIT polecenie wtedy to lokalne repozytorium jest tworzone.
w tym samym miejscu, gdzie znajduje się nasz katalog roboczy,
Checkit ( .git) plik get created.
Po tym, gdy kiedykolwiek popełnimy, to będzie przechowywać
zmiany jakie dokonujemy w pliku katalogu roboczego do
repozytorium lokalne (.git)
3)zdalne repozytorium ----- znajduje się poza naszym systemem jak na serwerach znajduje się gdziekolwiek na świecie . jak github. Kiedy wykonujemy polecenie PUSH to kody z naszego lokalnego repozytorium get stored to this Remote Repozytorium
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-16 16:08:11
Bardzo prymitywna analogia: jeśli porównamy git commit
do zapisania edytowanego pliku, to git push
skopiujemy ten plik w inne miejsce.
Proszę nie wyjmować tej analogii z tego kontekstu-zatwierdzanie i popychanie to nic innego jak zapisywanie edytowanego pliku i kopiowanie go. To powiedziawszy, powinien trzymać się tylko dla porównania sake.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-26 19:11:56
W kategoriach laika, git commit
jest krokiem przed git push
uruchomieniem ich w tej kolejności, aby pomyślnie wysłać plik na github.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-17 21:38:22
Git commit to nic innego jak oficjalne zapisywanie zmian, dla każdego commita podajemy komunikat commit, kiedy już skończymy z commitami, możemy przesunąć je do zdalnego, aby zobaczyć naszą globalną zmianę
Co oznacza, że możemy wykonać wiele commitów przed naciśnięciem przycisku remote (możemy zobaczyć listę commitów i wiadomości) git zapisuje każdy commit z identyfikatorem commita, który jest 40-cyfrowym kodem
I używam git push tylko wtedy, gdy chciałem zobaczyć swoją zmianę w remote (tam po sprawdzeniu czy mój kod działał w jenkinsie)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-20 07:49:19
Łatwiej jest zrozumieć użycie poleceń git add
i commit
, jeśli wyobrażasz sobie, że plik dziennika jest utrzymywany w Twoim repozytorium na Githubie.
Typowy dla mnie plik dziennika projektu może 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 zaczynam dzień od git pull
prośby, a kończę ją git push
prośbą. Więc wszystko w zapisie dnia odpowiada temu, co dzieje się między nimi. Każdego dnia wykonuję jedno lub więcej zadań logicznych , które wymagają zmiany kilku plików. Na pliki edytowane podczas tego zadania są wymienione w indeksie.
Każde z tych podrzędnych zadań (Zadanie A i zadanie B tutaj) to indywidualne commity. Polecenie git add
dodaje pliki do listy "indeks plików zmienionych". Proces ten nazywany jest również inscenizacją i w rzeczywistości zapisuje zmienione pliki i dokonane zmiany. Polecenie git commit
rejestruje / finalizuje zmiany i odpowiadającą im listę indeksów wraz z niestandardowym komunikatem, który może zostać użyty do późniejszego odniesienia.
Pamiętaj, że wciąż jesteś Zmiana tylko lokalnej kopii repozytorium, a nie tej na Github. Po tym, tylko gdy wykonasz git push
wszystkie zarejestrowane zmiany, wraz z plikami indeksu dla każdego commita, zostaną zalogowane w głównym repozytorium (na Github).
Jako przykład, aby uzyskać drugi wpis w tym wyimaginowanym pliku dziennika, wykonał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 podzielić zmianę w głównym repozytorium na systematyczne, logiczne Pod-zmiany. Jako inne odpowiedzi i komentarze zwróciły uwagę, są oczywiście o wiele więcej zastosowań. Jest to jednak jedno z najczęstszych zastosowań i zasada działania Git, która jest wieloetapowym systemem kontroli wersji, w przeciwieństwie do innych popularnych, takich jak Svn.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-15 16:43:51
git commit
jest zatwierdzanie plików, które są wystawione w lokalnym repo. git push
jest szybkie scalanie gałęzi master lokalnej strony ze zdalną gałęzią master. Ale połączenie nie zawsze się uda. Jeśli pojawi się odrzucenie, musisz pull
, aby móc odnieść sukces git push
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-12 08:56:26
Cóż, zasadniczo git commit umieszcza twoje zmiany w lokalnym repo, podczas gdy git push wysyła Twoje zmiany do zdalnej lokalizacji. Ponieważ git jest rozproszonym systemem kontroli wersji, różnica polega na tym, że commit zatwierdzi zmiany do lokalnego repozytorium, podczas gdy push wypchnie zmiany do zdalnego repo
Źródło Google
Http://gitref.org/basic / ten link będzie bardzo przydatny too
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-01 13:19:43