Які відмінності між "git commit" і "git push"?

У підручнику Git, який я переглядаю, git commit використовується для зберігання зроблених вами змін.

Що таке git push ?

770
30 апр. заданий ben 30 Квітня. 2010-04-30 17:17 '10 о 17:17 2010-04-30 17:17
@ 15 відповідей

В основному git commit "записує зміни в репозиторій" while git push "оновлює віддалені посилання разом з пов'язаними об'єктами". Таким чином, перший використовується у зв'язку з вашим локальним репозиторієм, в той час як останній використовується для взаємодії з віддаленим репозиторієм.

Ось хороша картина з Oliver Steele , яка пояснює модель git і команди:

2019

тисяча чотиреста сорок дві
30 апр. відповідь дан tanascius 30 Квітня. 2010-04-30 17:20 '10 о 17:20 2010-04-30 17:20

commit: додавання змін до локальний репозиторій

border=0

push: передача останнього фіксації на віддалений сервер

169
30 апр. відповідь дан TheHippo 30 Квітня. 2010-04-30 17:20 '10 о 17:20 2010-04-30 17:20

Ну, в основному git commit поміщає ваші зміни в локальне репо, а git push відправляє ваші зміни в віддалене розташування.

52
30 апр. відповідь дан markovuksanovic 30 Квітня. 2010-04-30 17:21 '10 о 17:21 2010-04-30 17:21

git push використовується для додавання коммітов, які ви зробили в локальному репозиторії, до віддаленого - разом з git pull , це дозволяє людям співпрацювати.

25
30 апр. відповідь дан Michael Borgwardt 30 Квітня. 2010-04-30 17:20 '10 о 17:20 2010-04-30 17:20

Так як git - це система управління розподіленої версією, різниця полягає в тому, що фіксація буде фіксувати зміни у вашому локальному сховищі, тоді як push призведе до змін до віддаленого репо.

23
30 апр. відповідь дан Justin Ethier 30 Квітня. 2010-04-30 17:20 '10 о 17:20 2010-04-30 17:20

git commit запишіть свої зміни в репозиторій локальний.

git push оновити репозиторій віддалений з вашими локальними змінами.

12
11 авг. відповідь дан Naresh 11 Серпня. 2013-08-11 09:20 '13 о 9:20 2013-08-11 9:20

'Зберегти як'} сховища. Git-репозиторій = серія (дерево) коммітов (плюс кілька додаткових речей).

Локальний репозиторій: репозиторій на вашому комп'ютері.

Віддалений репозиторій: репозиторій на сервері (наприклад, Github.com).

git commit : додати новий Комміт (останній Комміт + поетапні модифікації) в локальний репозиторій.

git push , git pull : Синхронізація локальний репозиторій із зв'язаним з ним віддаленим репозиторієм. push - застосувати зміни з локального на віддалений, pull - застосувати зміни з віддаленого на локальний.

10
04 авг. відповідь дан xged 04 Серпня. 2016-08-04 18:59 '16 о 18:59 2016-08-04 18:59

Три речі на замітку:

1) Робочий каталог ----- папка, в якій знаходиться наш файл кодів

2) Локальний репозиторій ------ Це всередині нашої системи. Під час нашої першої створюємо команду COMMIT, створюється цей локальний репозиторій. там же, де знаходиться наш робочий каталог,
Checkit (.git) файл буде створений.
Після цього, коли ми робимо Комміт, він зберігає зміни, які ми вносимо в файл Working Directory в локальний репозиторій (.git).

3) Віддалений репозиторій ----- Він розташований поза нашої системи, як і на серверах, розташованих в будь-якій точці світу. як GitHub. Коли ми виконуємо команду PUSH, коди з нашого локального сховища зберігаються в цьому віддаленому репозиторії.

4
16 мая '18 в 19:08 2018-05-16 19:08 відповідь дан DEVINDER THAKUR 16 травня '18 о 19:08 2018-05-16 19:08

Просто хочу додати такі пункти:

Yon не може натискати до тих пір, поки ви не зафіксуєте, оскільки ми використовуємо git push , щоб натискати фіксації, зроблені на вашій локальній гілці, в віддалений репозиторій.

Команда git push приймає два аргументи:

Віддалене ім'я, наприклад origin Ім'я гілки, наприклад master

наприклад:

git push <REMOTENAME> <BRANCHNAME>

4
27 нояб. відповідь дан Faisal Shaikh 27 нояб. 2016-11-27 22:52 '16 о 22:52 2016-11-27 22:52

Дуже груба аналогія: якщо ми порівняємо git commit зі збереженням відредагованого файлу, то git push буде копіювати цей файл в інше місце.

Будь ласка, не виймайте цю аналогію з цього контексту - фіксація і натискання не що інше, як збереження відредагованого файлу і його копіювання. Тим не менш, це повинно бути тільки для порівняння.

2
04 авг. відповідь дан amn 04 Серпня. 2016-08-04 21:34 '16 о 21:34 2016-08-04 21:34

Простіше зрозуміти використання команд git add і commit якщо уявити, що файл журналу підтримується в ваше сховище на Github. Типовий файл журналу проекту для мене може виглядати так:

 ---------------- 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 

Я зазвичай починаю свій день з запиту git pull і закінчую його запитом git push . Таким чином, все в денний записи відповідає тому, що відбувається між ними. Протягом кожного дня я виконую одну або кілька логічних задач, які вимагають зміни декількох файлів. Файли, відредаговані під час цього завдання, перераховані в індексі.

Кожна з цих підзадач (Задача A і Завдання B тут) є окремими коммітов. Команда git add додає файли в список "Індекс змінених файлів". Цей процес також називається постановкою і в дійсності записує змінені файли і виконані зміни. Команда git commit записує / завершує зміни і відповідний індексний список разом з призначеним для користувача повідомленням, яке може бути використане для подальшого використання.

Пам'ятайте, що ви все ще змінюєте тільки локальну копію свого сховища, а не ту, що на Github. Після цього, тільки коли ви робите git push , всі ці записані зміни, а також ваші індексні файли для кожного коммітов, реєструються в головному репозиторії (на Github).

Як приклад, щоб отримати другий запис в цьому уявному лог файлі, я б зробив:

 git pull # Make changes to File3 and File4 git add File3 File4 # Verify changes, run tests etc.. git commit -m 'Corrected typos' git push 

У двох словах, git add і git commit дозволяють розбити зміни в головному репозиторії на систематичні логічні підміни. Як вже зазначалося в інших відповідях і коментарях, у них, звичайно, є багато інших застосувань. Тим не менш, це один з найбільш поширених способів використання Git, який є багатоступеневою системою контролю версій на відміну від інших популярних систем, таких як Svn.

0
15 янв. відповідь дан Cibin Joseph 15 Січня. 2018-01-15 09:13 '18 о 9:13 2018-01-15 9:13

в термінах непрофесіонала, git commit - це крок до git push , який ви запускаєте в цьому порядку для успішного git вашого файлу в github.

0
18 июня '17 в 0:38 2017-06-18 00:38 відповідь дан Zeal Murapa 18 червня '17 в 0:38 2017-06-18 00:38

git commit - це не що інше, як офіційне збереження наших змін, для кожного коммітов, який ми даємо повідомленням коммітов, як тільки ми закінчимо з коммітов, ми можемо перемістити його на віддалений комп'ютер, щоб побачити наші зміни глобально

це означає, що ми можемо зробити безліч коммітов, перш ніж ми відправимо їх на віддалений сервер (ми можемо побачити список відбулися коммітов і повідомлення), git зберігає кожен Комміт з ідентифікатором коммітов, який представляє собою 40-значний код

і я використовую git push тільки тоді, коли я хотів побачити свої зміни в віддаленому режимі (там після того, як я перевірю, чи працює мій код в jenkins)

0
20 дек. відповідь дан Sai Koti 20 дек. 2017-12-20 10:49 '17 о 10:49 2017-12-20 10:49

git commit полягає в фіксації файлів, розташованих в локальному репо. git push - прискорена пересилання злиття головною гілки локальної боку з віддаленої головною гілкою. Але злиття не завжди буде успішним. Якщо з'являється відмову, ви повинні pull , щоб ви могли зробити успішний git push .

-3
12 авг. відповідь дан Marcus Thornton 12 Серпня. 2014-08-12 11:56 '14 о 11:56 2014-08-12 11:56

Ну, в основному git commit переносить ваші зміни в локальне репо, а git push відправляє ваші зміни в віддалене розташування. Оскільки git є розподіленою системою керування версіями, різниця полягає в тому, що фіксація буде фіксувати зміни у вашому локальному сховищі, тоді як push буде натискати зміни до віддаленого репо

source Google

http://gitref.org/basic/ це посилання буде дуже корисна.

https://git-scm.com/docs/git-commit

-3
01 авг. відповідь дан oroyo segun 01 Серпня. 2016-08-01 14:51 '16 о 14:51 2016-08-01 14:51

Інші питання по мітках або Задайте питання