Как провести различие между локальными незафиксированными изменениями и источником



допустим, я клонировал репозиторий и начал изменять файлы. Я знаю, что если у меня есть локальные незафиксированные изменения, я могу сделать diff следующим образом git diff test.txt и это покажет мне разницу между текущей локальной головкой и измененными, незафиксированными изменениями в файле. Если я зафиксирую эти изменения, я могу отличить его от исходного репозитория с помощью git diff master origin/master



но есть ли способ отличить локальные изменения от исходного репозитория на сервере до совершая локально? Я пробовал различные перестановки git diff --cached master origin/master не повезло.

547   4  

4 ответов:

учитывая, что удаленный репозиторий из кэша через git fetch можно сравнить с этими изменениями. Попробуйте следующее:

$ git fetch origin
$ git diff origin/master

Я знаю, что это не ответ на точный вопрос, но я нашел этот вопрос, глядя на diff a file в ветке и локальном незафиксированном файле, и я решил, что поделюсь

синтаксис:

git diff <commit-ish>:./ -- <path>

примеры:

git diff origin/master:./ -- README.md
git diff HEAD^:./ -- README.md
git diff stash@{0}:./ -- README.md
git diff 1A2B3C4D:./ -- README.md

(спасибо Eric Boehs за способ не нужно вводить имя файла дважды)

посмотреть непостановочных (не добавлен) изменения в существующие файлы

git diff

обратите внимание, что это не отслеживает новые файлы. Чтобы увидеть поэтапные, незавершенные изменения

git diff --cached

Если вы хотите сравнить файлы визуально вы можете использовать:

git difftool

он автоматически запустит ваше приложение diff для каждого измененного файла.

PS: Если вы не установили приложение дифференциала, вы можете сделать это как в примере ниже(я использую Winmerge):

git config --global merge.tool winmerge
git config --replace --global mergetool.winmerge.cmd "\"C:\Program Files (x86)\WinMerge\WinMergeU.exe\" -e -u -dl \"Base\" -dr \"Mine\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\""
git config --global mergetool.prompt false

Comments

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