В чем различия между "git commit" и "git push"? - PullRequest
831 голосов
/ 30 апреля 2010

В учебнике по Git, который я прохожу, git commit используется для хранения внесенных вами изменений.

Для чего тогда используется git push? 1005 *

Ответы [ 15 ]

0 голосов
/ 15 января 2018

Проще понять использование команд 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 голосов
/ 20 декабря 2017

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

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

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

0 голосов
/ 18 июня 2017

в терминах непрофессионала, git commit - это шаг до git push, когда вы запускаете их в таком порядке, чтобы успешно перенести файл в github.

0 голосов
/ 01 августа 2016

Ну, в основном git commit помещает ваши изменения в локальное хранилище, а git push отправляет ваши изменения в удаленное местоположение. Поскольку git является распределенной системой управления версиями, разница в том, что commit будет фиксировать изменения в вашем локальном репозитории, тогда как push будет передавать изменения до удаленного репо

источник Google

http://gitref.org/basic/ эта ссылка тоже будет очень полезна

https://git -scm.com / документы / ГИТ-совершающие

0 голосов
/ 12 августа 2014

git commit - для фиксации файлов в локальном репо. git push - объединение главной ветви локальной стороны с удаленной главной ветвью. Но слияние не всегда будет успешным. Если появляется отказ, вы должны pull, чтобы вы могли сделать успешный git push.

...