В чем разница между "git commit" и "git push"?


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

что это git push используется для ТО?

15 751

15 ответов:

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

вот хорошая картина от Оливер Стил, что объясняет модель git и команды:

Git data transport commands

подробнее о git push и git pull on GitReady.com (Статья, на которую я ссылался в первую очередь)

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

push: для передачи последнего коммита(ов) на удаленный сервер

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

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

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

git commit запишите свои изменения в local репозитория.

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

Commit: {Snapshot | Changeset | History record | Version / 'Save-as'} репозитория. Git repository = серия (дерево) из commits (плюс несколько дополнительных вещей).

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

Remote репозитории: репозиторий на сервере (например,Github).

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

git push,git pull: синхронизация местные репозиторий с remote репозитория. push - применить изменения из местные на remote,pull - применить изменения из remote на местные.

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

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

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

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

например:

git push <REMOTENAME> <BRANCHNAME>

три вещи, чтобы отметить:

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

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

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

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

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

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

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

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

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

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

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

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

источник Google

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

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