Как проверить различия между локальным и github перед вытягиванием [дубликат]



этот вопрос уже есть ответ здесь:



перед использованием pull, я хочу проверить, есть ли какие-либо различия между моим локальным и GitHub master.



Как я могу это сделать?

583   3  

3 ответов:

git pull действительно соответствует работе git fetch а то git merge. Элемент git fetch обновляет так называемые" ветви удаленного отслеживания " -обычно это те, которые выглядят как origin/master,github/experiment и т. д. что вы видите с git branch -r. Они похожи на кэш состояния ветвей в удаленном репозитории, которые обновляются при выполнении git fetch (или успешный git push).

Итак, предположим, у вас есть пульт дистанционного управления под названием origin, что относится к вашему репозиторию GitHub, вы бы делать:

git fetch origin

... а потом делают:

git diff master origin/master

... для того, чтобы увидеть разницу между master, и тот, что на GitHub. Если вы довольны этими различиями, вы можете объединить их с git merge origin/master, предполагая, что master ваша текущая ветка.

лично я думаю, что делаю git fetch и git merge отдельно вообще хорошая идея.

если вы не заинтересованы в деталях, что git diff выходов вы можете просто запустить git cherry который выведет список коммитов, которые ваша удаленная ветвь отслеживания опережает вашу локальную ветвь.

например:

git fetch origin
git cherry master origin/master

выведет что-то вроде :

+ 2642039b1a4c4d4345a0d02f79ccc3690e19d9b1
+ a4870f9fbde61d2d657e97b72b61f46d1fd265a9

указывает, что в моей ветви удаленного отслеживания есть две фиксации, которые не были объединены в мою локальную ветвь.

Это также работает в другую сторону :

    git cherry origin/master master

покажет вам список локальных коммитов, которые вы еще не отправили в свой удаленный репозиторий.

и еще одна полезная команда для этого (после git fetch):

git log origin/master ^master

Это показывает коммиты, которые находятся в origin/master, но не в мастер. Вы также можете сделать это наоборот при выполнении git pull, чтобы проверить, какие коммиты будут отправлены на пульт.

Comments

    Ничего не найдено.