Страницы

Поиск по вопросам

четверг, 8 ноября 2018 г.

Просмотр изменений на удаленном репозитории

Можно ли с локального рабочего места посмотреть:
Были ли изменения в удаленном репозитории Какие это были изменения
Чтобы принять решение - вливать-не вливать и что вливать? нашел решение для просмотра изменений diff после fetch
git diff HEAD...origin/master git diff HEAD...origin/branch1
насколько оно правомочно? вывод вполне наглядный


Ответ

команда pull программы git на самом деле является последовательностью двух команд: fetch и merge
fetch — получает обновившиеся указатели (т.е., ветки — branch, и метки — tag) и скачивает все необходимые для их (указателей) использования объекты (т.е., коммиты — commit, деревья — tree и «блобы» — blob, binary large object).
merge указатель — пытается осуществить «вливание» коммита (и всех промежутоных коммитов), на который ссылается указатель, в вашу текущую ветку (ветка в git — это плавающий указатель на коммит).
выполнив не pull, а только первую часть — fetch
$ git fetch
вы получите возможность просмотреть, какие коммиты сейчас отделяют ваш локальный указатель (например, ветку master) от другого указателя, полученного из удалённого репозитория (если репозиторий подключен всего один, то называется по умолчанию — origin), например, одноимённой ветки master, которую можно обозначить как origin/master
$ git log master..origin/master
две точки здесь — это часть синтаксиса.
какие именно произошли изменения и в каких файлах, можно увидеть, добавив команде log опцию -p
$ git log -p master..origin/master
а можно посмотреть и полный список отличий в файлах между двумя указателями:
$ git diff master..origin/master

нашел решение для просмотра изменений diff после fetch git diff HEAD...origin/master насколько оно правомочно?
вполне правомочно.
и полностью соответствует выводу git diff master..origin/master, если master — ваша текущая ветка. уточнить вы можете с помощью команды git status, или более «низкоуровнево», заглянув в содержимое файла .git/HEAD. пример:
$ cat .git/HEAD ref: refs/heads/master
здесь указатель HEAD ссылается именно на локальную ветку master

Комментариев нет:

Отправить комментарий