У підручнику з Git, який я переживаю, git commitвикористовується для зберігання внесених вами змін.
Для чого git pushвикористовується тоді?
У підручнику з Git, який я переживаю, git commitвикористовується для зберігання внесених вами змін.
Для чого git pushвикористовується тоді?
Відповіді:
В основному git commit" записує зміни в сховище ", в той час як git push" оновлює віддалені перегляд разом із пов'язаними об'єктами ". Отже, перший використовується у зв'язку з вашим локальним сховищем, а другий використовується для взаємодії з віддаленим сховищем.
Ось приємна картинка від Олівера Стіла , яка пояснює модель git та команди:

Детальніше про git pushта git pullна GitReady.com (стаття, про яку я згадувалась у першу чергу)
git pushроботи. Насправді пунктом призначення git pushможе бути будь-яке сховище git. Це може бути на вашому локальному жорсткому диску в іншому каталозі ( git remote add clone ~/proj/clone.git; git push clone masterабо git push ~/proj/clone.git master, наприклад), або сховищі git, яке обслуговує ваш власний хост.
Ну, в основному git commit вносить ваші зміни у ваше місцеве репо, тоді як git push надсилає ваші зміни у віддалене місце.
git pushзавантажує фактично оновлені файли чи якийсь спеціальний "розрізний" файл?
git pushвикористовується для додавання комісій, які ви зробили в локальному сховищі, до віддаленого - разом із git pullцим він дозволяє людям співпрацювати.
Оскільки git - це система управління розподіленою версією, відмінність полягає в тому, що фіксація вчинить зміни у вашому локальному сховищі, тоді як натискання підштовхне зміни до віддаленого репо.
Фіксація : Знімок | Набір змін | History_record | Версія | "Зберегти як" сховища. Git сховище = серія (дерево) комітів .
Локальне сховище: сховище на вашому комп’ютері.
Віддалене сховище: сховище на сервері ( Github ).
git commit: Додайте нову комісію (остання фіксація + поетапні модифікації) до локального сховища. (Усі комісії зберігаються в /.git)
git push, git pull: Синхронізуйте локальне сховище із пов'язаним із ним віддаленим сховищем. push- застосувати зміни від локального до віддаленого , pull- застосувати зміни від віддаленого до локального .
git commitзапишіть свої зміни до локального сховища.
git push оновлення з віддаленим сховищем з вашими локальними змінами.
Три речі, які слід зазначити:
1) робоча директорія ----- папка, в якій присутній наш код кодів
2) Локальний сховище ------ Це всередині нашої системи. Коли ми вперше робимо команду COMMIT, тоді створюється цей локальний репозиторій. там же, де знаходиться наш робочий каталог,
створюється файл Checkit (.git).
Після цього, коли коли-небудь ми будемо робити зобов’язання, це збереже зміни, які ми внесемо у файл робочої каталоги до локального сховища (.git)
3) Віддалене сховище ----- Це розташоване поза нашою системою, як на серверах, розташованих будь-де в світі. як гітуб. Коли ми робимо команду PUSH, коди з нашого локального сховища зберігаються в цьому віддаленому сховищі
Просто хочу додати наступні моменти:
Yon не може натискати, поки ви не скористаєтеся, як ми використовуємо git pushдля того, щоб пересилати комісії, зроблені на вашому місцевому відділенні, до віддаленого сховища.
git pushКоманда приймає два аргументи:
Віддалене ім'я, наприклад, origin
назва гілки, наприклад,master
Наприклад:
git push <REMOTENAME> <BRANCHNAME>
git push origin master
Дуже жорстка аналогія: якщо ми порівнюємо git commitіз збереженням відредагованого файлу, то git pushце буде копіювання цього файлу в інше місце.
Будь ласка, не виймайте цю аналогію з цього контексту - введення та натискання не зовсім схоже на збереження відредагованого файлу та його копіювання. Однак це повинно мати порівняння.
Простіше зрозуміти використання команд 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проханням. Тож все, що знаходиться у записі дня, відповідає тому, що відбувається між ними. Протягом кожного дня я виконую одне чи більше логічних завдань , які потребують зміни декількох файлів. Файли, відредаговані під час виконання цього завдання, перелічені в індексі.
Кожне з цих підзадач (Завдання А та Завдання Б тут) є індивідуальними комітетами. 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.
git commit - це не що інше, як збереження наших змін, офіційно - за кожне зобов’язання ми передаємо повідомлення про фіксацію, як тільки ми виконаємо з зобов’язаннями, ми можемо натиснути його на віддалене місце, щоб побачити зміни в глобальному масштабі.
а це означає, що ми можемо зробити численні коміти, перш ніж натиснути на віддалений (ми можемо побачити список комітетів, що трапилися, і повідомлення теж) git зберігає кожну комісію з ідентифікатором фіксації, який є 40-значним кодом
і я використовую git push лише тоді, коли мені хотілося побачити зміни в дистанційному (Там після я перевірю, чи працював мій код у дженкінсах)
Ну, в основному git commit вносить ваші зміни у ваше місцеве репо, тоді як git push надсилає ваші зміни у віддалене місце. Оскільки git - це система управління розподіленою версією, відмінність полягає в тому, що фіксація вчинить зміни у вашому локальному сховищі, тоді як натискання призведе зміни до віддаленого репо
джерело Google
http://gitref.org/basic/ це посилання також буде дуже корисним
По-простому, git commitце крок перед тим, git pushяк запустити їх у такому порядку, щоб успішно ввести файл у github.
git commitполягає в закріпленні файлів, розміщених у місцевому репо. git pushполягає в тому, щоб швидко перемотати вперед об'єднання головного відділення локальної сторони з віддаленою головною гілкою. Але злиття не завжди матиме успіх. Якщо з'явиться відмова, вам доведеться зробити pullтак, щоб ви могли зробити успішним git push.