У підручнику з 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
.