нет ответа, так как он уже был предоставлен. просто наблюдение. мне кажется, что коммит действительно должен называться сохранением, а push - коммитом. Классический сценарий именования.
Дублин
Ответы:
1619
По сути, git commit« записывает изменения в хранилище », а git push« обновляет удаленные ссылки вместе со связанными объектами». ». Таким образом, первый используется в связи с вашим локальным хранилищем, а второй - для взаимодействия с удаленным хранилищем.
Вот хорошая картинка от Оливера Стила , которая объясняет модель git и команды:
Узнайте больше о GitReady.comgit push и git pullо нем (статья, на которую я ссылался первой)
@ben github - это всего лишь одно решение для размещения вашего общедоступного хранилища "в облаке", git pushс которым можно работать. В действительности, местом назначения git pushможет быть любое git-хранилище. Это может быть ваш собственный локальный жесткий диск в другом каталоге ( git remote add clone ~/proj/clone.git; git push clone masterили git push ~/proj/clone.git master, например) или хранилище git, которое обслуживает ваш собственный хост.
Santa
2
так ... вам нужно сначала нажать или сделать коммит?
Кокодоко
5
@ Пит начинается с вашего рабочего пространства, где вы изменяете файлы. Затем вы добавляете их в индекс, фиксируете их в локальном репозитории и - наконец
отправляете
2
@ Mr.Hyde нет, это невозможно. Git в качестве распределенного контроля версий требует наличия локальной копии.
Танаскиус
215
commit : добавление изменений в локальный репозиторий
push : перенести последние коммиты на удаленный сервер
это мой второй день использования GIT. Когда я смотрю на ответы выше, я все еще не могу получить четкую картину, но ваш ответ только прибивает его. Спасибо.
Бофа
1
git pushЗагружает ли актуально обновленные файлы или какой-то специальный «diff» файл?
multigoodverse
27
git pushиспользуется для добавления коммитов, которые вы сделали в локальном репозитории, в удаленный - вместе с тем git pullон позволяет людям сотрудничать.
Поскольку git - это распределенная система управления версиями, разница в том, что commit будет фиксировать изменения в вашем локальном репозитории, тогда как push будет передавать изменения до удаленного репо.
Совершить : снимок | Changeset | History_record | Версия | «Сохранить как» хранилища. Git репозиторий = серия (дерево) коммитов .
Локальный репозиторий: репозиторий на вашем компьютере.
Удаленный репозиторий: репозиторий на сервере ( Github ).
git commit: Добавить новый коммит (последний коммит + поэтапные модификации) в локальный репозиторий. (Все коммиты хранятся в /.git)
git push, git pull: Синхронизировать локальный репозиторий со связанным с ним удаленным репозиторием. push- применить изменения с локального на удаленный , pull- применить изменения с удаленного на локальный .
Ваш ответ в основном идентичен этому ответу , он не добавляет ничего нового.
7
Три вещи на заметку:
1) Рабочий каталог ----- папка, в которой находится наш файл кодов
2) Локальный репозиторий ------ Это внутри нашей системы. Когда мы впервые создаем команду COMMIT, создается этот локальный репозиторий. в том же месте, где находится наш рабочий каталог,
создается файл Checkit (.git).
После этого, когда мы делаем коммит, он сохраняет изменения, которые мы вносим в файл Working Directory в локальный репозиторий (.git).
3) Удаленный репозиторий ----- Он расположен вне нашей системы, как и на серверах, расположенных в любой точке мира. как GitHub. Когда мы выполняем команду PUSH, коды из нашего локального хранилища сохраняются в этом удаленном хранилище.
Yon не может отправлять сообщения до тех пор, пока вы не совершите коммит, поскольку мы используем git pushдля отправки коммитов, сделанных в вашей локальной ветви, в удаленный репозиторий
Команда 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 будет передавать изменения до удаленного репо
git commitэто зафиксировать файлы, которые находятся в локальном репо. git pushэто быстрая перемотка слияния главной ветви локальной стороны с удаленной главной веткой. Но слияние не всегда будет успешным. Если появляется отказ, вы должны сделать pullтак, чтобы вы могли добиться успеха git push.
Некоторые люди могут хотеть принудить толчок вместо тяги. Это зависит от ситуации. На самом деле, если вы перебазировали коммиты в ветке, которой вы не делитесь с другими людьми (даже в удаленном репо), то вытащить - это совсем не то, что вы хотите.
Ответы:
По сути,
git commit
« записывает изменения в хранилище », аgit push
« обновляет удаленные ссылки вместе со связанными объектами». ». Таким образом, первый используется в связи с вашим локальным хранилищем, а второй - для взаимодействия с удаленным хранилищем.Вот хорошая картинка от Оливера Стила , которая объясняет модель git и команды:
Узнайте больше о GitReady.com
git 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, которое обслуживает ваш собственный хост.commit : добавление изменений в локальный репозиторий
push : перенести последние коммиты на удаленный сервер
источник
Ну, в основном 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 commit
с сохранением отредактированного файла, тоgit push
скопируем этот файл в другое место.Пожалуйста, не вынимайте эту аналогию из этого контекста - фиксация и отправка не совсем то же самое, что сохранение отредактированного файла и его копирование. Тем не менее, это должно быть проведено для сравнения.
источник
Проще понять использование команд git,
add
иcommit
если вы представляете, что файл журнала поддерживается в вашем репозитории на Github. Типовой файл журнала проекта для меня может выглядеть так:Я обычно начинаю свой день с
git pull
запроса и заканчиваю егоgit push
запросом. Таким образом, все в дневной записи соответствует тому, что происходит между ними. В течение каждого дня есть одна или несколько логических задач , которые требуют изменения нескольких файлов. Файлы, отредактированные во время этой задачи, перечислены в индексе.Каждая из этих подзадач (Задача A и Задача B здесь) является отдельными коммитами. Команда
git add
добавляет файлы в список «Индекс измененных файлов». Этот процесс также называется постановкой и в действительности записывает измененные файлы и выполненные изменения.git commit
записывает / завершает изменения и соответствующий индексный список вместе с пользовательским сообщением, которое может быть использовано для дальнейшего использования.Помните, что вы все еще изменяете только локальную копию своего хранилища, а не ту, что на Github. После этого, только когда вы делаете
git push
все эти записанные изменения вместе с вашими индексными файлами для каждого коммита, вы регистрируетесь в главном репозитории (на Github).В качестве примера, чтобы получить вторую запись в этом воображаемом лог-файле, я бы сделал:
В двух словах,
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/ эта ссылка тоже будет очень полезна
https://git-scm.com/docs/git-commit
источник
с точки зрения непрофессионала,
git commit
это шаг доgit push
того, как вы запустите их в таком порядке, чтобы успешно переместить ваш файл в github.источник
git commit
это зафиксировать файлы, которые находятся в локальном репо.git push
это быстрая перемотка слияния главной ветви локальной стороны с удаленной главной веткой. Но слияние не всегда будет успешным. Если появляется отказ, вы должны сделатьpull
так, чтобы вы могли добиться успехаgit push
.источник