В чем разница между "git commit" и "git push"?
15 ответов
в принципе git commit
"запись изменений в репозиторий" а git push
"обновляет удаленные ссылки вместе со связанными объектами". Таким образом, первый используется в связи с вашим локальным репозиторием, а второй используется для взаимодействия с удаленным репозиторием.
вот хорошая картина из Оливер Стил, это объясняет модель git и команды:
подробнее о git push
и git pull
на GitReady.com (в статье я назвал первой)
commit: внесений изменений в локальный репозиторий
push: для передачи последней фиксации на удаленный сервер
Ну, в основном git commit помещает ваши изменения в ваше локальное РЕПО, в то время как git push отправляет ваши изменения в удаленное местоположение.
git push
используется для добавления коммитов, которые вы сделали в локальном репозитории, в удаленный-вместе с git pull
, это позволяет людям сотрудничать.
поскольку git является распределенной системой управления версиями, разница в том, что commit будет фиксировать изменения в вашем локальном репозитории, тогда как push будет толкать изменения до удаленного РЕПО.
git commit
запишите изменения в местные репозитория.
git push
обновление на пульт ДУ репозиторий с локальными изменениями.
фиксация: {Snapshot/Changeset / History record | Version / 'Save-as'} репозитория. Git repository = серия (дерево) из commits (плюс несколько дополнительных вещей).
местные repository: репозиторий на вашем компьютере.
пульт ДУ репозитории: репозиторий на сервере (например,Github).
git commit
Добавить новый фиксация (последний фиксация + поставил изменений) к местные репозитория.
git push
, git pull
: синхронизация местные репозиторий с пульт ДУ репозитория. push
- применить изменения из местные на пульт ДУ, pull
- применить изменения из пульт ДУ на местные.
просто хочу добавить следующее:
Йон не может нажать, пока вы не совершите, как мы используем git push
для передачи коммитов, сделанных в вашей локальной ветви, в удаленный репозиторий.
на git push
команда принимает два аргумента:
удаленное имя, например,origin
Имя ветви, например,master
например:
git push <REMOTENAME> <BRANCHNAME>
три вещи, чтобы отметить:
1)Рабочий Каталог - - - - - - папка, в которой присутствует наш файл кодов
2)Локальный Репозиторий ------ это внутри нашей системы. Когда мы впервые делаем
Команда COMMIT затем создается этот локальный репозиторий.
в том же месте, где находится наш рабочий каталог
Checkit ( .создается файл git).
После этого, когда мы когда-либо совершим , это сохранит
изменения, которые мы вносим в файл рабочего каталога
локальный репозиторий.( git)
3)Удаленный Репозиторий - - - - - это расположено вне нашей системы как на серверах находится в любой точке мира . как GitHub. Когда мы делаем команду PUSH, то коды из нашего локального репозиторий хранить в этом удаленном репозитории
очень грубая аналогия: если мы сравним git commit
для сохранения отредактированного файла, затем git push
будет копировать этот файл в другое место.
пожалуйста, не выводите эту аналогию из этого контекста-фиксация и нажатие-это не что иное, как сохранение отредактированного файла и его копирование. Тем не менее, это должно выполняться только для сравнения.
С точки зрения обывателя, git commit
шаг перед git push
вы запускаете их в этом порядке, чтобы успешно git ваш файл в github.
git commit - это не что иное, как сохранение наших изменений официально, для каждого коммита мы даем сообщение о фиксации, как только мы закончим с фиксациями, мы можем нажать его на пульт, чтобы увидеть наши изменения во всем мире
Что означает, что мы можем делать многочисленные коммиты, прежде чем нажимать на remote (мы видим, что список коммитов произошел и сообщения тоже) git сохраняет каждый коммит с commit ID, который является 40-значный код
и я использую git push только тогда, когда я хотел увидеть мое изменение в remote (там после того, как я буду проверьте, работал ли мой код в jenkins)
легче понять использование команд 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 здесь) являются индивидуальными фиксациями. The git add
команда добавляет файлы в список "индекс измененных файлов". Этот процесс также называется постановкой и на самом деле записывает измененные файлы и выполненные изменения. The 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/ эта ссылка будет очень полезна слишком!--1-->