Каковы различия между "git commit" и "git push"?

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

Что такое git push?

Ответ 1

В основном git commit "записывает изменения в репозиторий" while git push "обновляет удаленные ссылки вместе со связанными объектами". Таким образом, первый используется в связи с вашим локальным репозиторием, в то время как последний используется для взаимодействия с удаленным репозиторием.

Вот хорошая картина из Oliver Steele, которая объясняет модель git и команды:

Git data transport commands

Подробнее о git push и git pull на GitReady.com (статья, о которой я упоминал вначале)

Ответ 2

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

push: передача последнего фиксации на удаленный сервер

Ответ 3

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

Ответ 4

git push используется для добавления коммитов, которые вы сделали в локальном репозитории, к удаленному - вместе с git pull, это позволяет людям сотрудничать.

Ответ 5

Так как git - это система управления распределенной версией, разница заключается в том, что фиксация будет фиксировать изменения в вашем локальном репозитории, тогда как push приведет к изменениям до удаленного репо.

Ответ 6

Совершить: снимок | Changeset | History_record | Версия | "Сохранить как" хранилища. Git-репозиторий = серия (дерево) коммитов.

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

Удаленный репозиторий: репозиторий на сервере (Github).

git commit: добавьте новый коммит (последний коммит + поэтапные изменения) в локальный репозиторий. (Все коммиты хранятся в /.git)

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

Ответ 7

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

git push обновить репозиторий удаленный с вашими локальными изменениями.

Ответ 8

Просто хочу добавить следующие пункты:

Yon не может нажать push, пока вы не совершите коммит, поскольку мы используем git push для отправки коммитов, сделанных в вашей локальной ветке, в удаленный репозиторий.

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

Удаленное имя, например, origin Имя ветки, например, master

Например:

git push  <REMOTENAME> <BRANCHNAME> 
git push  origin       master

Ответ 9

Три вещи на заметку:

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

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

3) Удаленный репозиторий ----- Он расположен вне нашей системы, как и на серверах, расположенных в любой точке мира. как GitHub. Когда мы выполняем команду PUSH, коды из нашего локального репозитория сохраняются в этом удаленном репозитории.

Ответ 10

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

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

Ответ 11

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

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

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

Ответ 12

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

Ответ 13

Нажмите: нажмите на ветку для удаленного, вместе с необходимыми коммитами и объекты. Создает именованную ветку в удаленном репо, если она не существует.

Фиксация: запишите изменения в локальный репозиторий, зафиксируйте поэтапный снимок. Он отслеживает изменения, сделанные между каждым коммитом.

Когда вы фиксируете свои изменения, вы сохраняете изменения как один логический набор в локальном репозитории. Вы можете сделать это несколько раз, не нажимая. Пока они не вытолкнуты, они не покинут ваш локальный репозиторий, а это значит, что удаленный репозиторий еще не будет иметь эти наборы изменений, поэтому, когда другие люди извлекают данные из удаленного репозитория, ваши коммиты не будут извлечены.

Когда вы нажимаете, все коммиты, сделанные вами в вашем локальном репозитории, будут перенесены в удаленный репозиторий, поэтому, когда другие разработчики, которые совместно используют этот удаленный репозиторий, извлекают ваши изменения в свои локальные репозитории.

Ответ 14

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

Ответ 15

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

source Google

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

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

Ответ 16

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