В учебнике по Git, который я рассмотрю, git commit
он используется для хранения внесенных вами изменений.
Что git push
используется тогда?
В учебнике по Git, который я рассмотрю, git commit
он используется для хранения внесенных вами изменений.
Что git push
используется тогда?
Ответы:
По сути, git commit
« записывает изменения в хранилище », а git push
« обновляет удаленные ссылки вместе со связанными объектами». ». Таким образом, первый используется в связи с вашим локальным хранилищем, а второй - для взаимодействия с удаленным хранилищем.
Вот хорошая картинка от Оливера Стила , которая объясняет модель git и команды:
Узнайте больше о GitReady.comgit push
и git pull
о нем (статья, на которую я ссылался первой)
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
Загружает ли актуально обновленные файлы или какой-то специальный «diff» файл?
git push
используется для добавления коммитов, которые вы сделали в локальном репозитории, в удаленный - вместе с тем git pull
он позволяет людям сотрудничать.
Поскольку git - это распределенная система управления версиями, разница в том, что commit будет фиксировать изменения в вашем локальном репозитории, тогда как push будет передавать изменения до удаленного репо.
Совершить : снимок | Changeset | History_record | Версия | «Сохранить как» хранилища. Git репозиторий = серия (дерево) коммитов .
Локальный репозиторий: репозиторий на вашем компьютере.
Удаленный репозиторий: репозиторий на сервере ( Github ).
git commit
: Добавить новый коммит (последний коммит + поэтапные модификации) в локальный репозиторий. (Все коммиты хранятся в /.git
)
git push
, git pull
: Синхронизировать локальный репозиторий со связанным с ним удаленным репозиторием. push
- применить изменения с локального на удаленный , pull
- применить изменения с удаленного на локальный .
git commit
запишите ваши изменения в локальный репозиторий.
git push
обновление с удаленным хранилищем с вашими локальными изменениями.
Три вещи на заметку:
1) Рабочий каталог ----- папка, в которой находится наш файл кодов
2) Локальный репозиторий ------ Это внутри нашей системы. Когда мы впервые создаем команду COMMIT, создается этот локальный репозиторий. в том же месте, где находится наш рабочий каталог,
создается файл Checkit (.git).
После этого, когда мы делаем коммит, он сохраняет изменения, которые мы вносим в файл Working Directory в локальный репозиторий (.git).
3) Удаленный репозиторий ----- Он расположен вне нашей системы, как и на серверах, расположенных в любой точке мира. как GitHub. Когда мы выполняем команду 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
запросом. Таким образом, все в дневной записи соответствует тому, что происходит между ними. В течение каждого дня есть одна или несколько логических задач , которые требуют изменения нескольких файлов. Файлы, отредактированные во время этой задачи, перечислены в индексе.
Каждая из этих подзадач (Задача 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 сохраняет каждый коммит с идентификатором коммита, который является 40-значным кодом
и я использую git push только тогда, когда я хотел увидеть свои изменения в удаленном режиме (там после того, как я проверю, работает ли мой код в jenkins)
Ну, в основном git commit помещает ваши изменения в локальное хранилище, а git push отправляет ваши изменения в удаленное местоположение. Поскольку git - это распределенная система управления версиями, разница в том, что commit будет фиксировать изменения в вашем локальном репозитории, тогда как push будет передавать изменения до удаленного репо
источник Google
http://gitref.org/basic/ эта ссылка тоже будет очень полезна
с точки зрения непрофессионала, git commit
это шаг до git push
того, как вы запустите их в таком порядке, чтобы успешно переместить ваш файл в github.
git commit
это зафиксировать файлы, которые находятся в локальном репо. git push
это быстрая перемотка слияния главной ветви локальной стороны с удаленной главной веткой. Но слияние не всегда будет успешным. Если появляется отказ, вы должны сделать pull
так, чтобы вы могли добиться успеха git push
.