Я хочу найти различия между файлом в моем локальном хранилище и тем, что находится в origin master
.
Я знаю, что есть git diff
, однако я просто хочу выделить его в этот конкретный файл.
Для простоты предположим, что файл назван file1.txt
и имеет локальный путь к файлу =, [local_path]
а в источнике - filepath = [remote-path]
.
Какую команду git мне нужно набрать?
РЕДАКТИРОВАТЬ: Спасибо всем за ваш вклад, это было очень проницательным. Для тех, кто использует Eclipse (о чем я и должен был сказать ранее), я только что узнал, что вы можете просто щелкнуть правой кнопкой мыши -> Сравнить с -> Ветвь, Тег или Ссылка -> выбрать подходящую версию, и все готово.
Ответы:
Если
[remote-path]
и[local-path]
то же самое, вы можете сделатьПримечание 1: вторая команда, приведенная выше, будет сравниваться с локально сохраненной веткой удаленного отслеживания. Команда fetch необходима для обновления удаленной ветви отслеживания для синхронизации с содержимым удаленного сервера. В качестве альтернативы, вы можете просто сделать
Примечание 2:
master
может быть заменено в приведенных выше примерах любым именем ветвиисточник
git diff master:README.md -- README.md
git diff origin/master -- README.md
git fetch master
вместо этого использоватьgit fetch .
(origin / master тоже не работал) Но остальные работали хорошо.git fetch **origin**
.Чтобы просмотреть различия, идущие от удаленного файла к локальному файлу:
Чтобы увидеть различия в другом направлении:
По сути, вы можете различать любые два файла в любом месте, используя эту запись:
Как обычно,
ref1
иref2
может быть имена филиалов, удаленное_имя / branchname, совершают ШАС и т.д.источник
Чтобы сравнить локальное хранилище с удаленным, просто используйте следующий синтаксис:
источник
Для этого я написал скрипт bash:
В приведенном выше сценарии я извлекаю удаленную основную ветвь (не обязательно ее основную ветвь ЛЮБУЮ ветвь) в
FETCH_HEAD
, затем создаю список только моего измененного файла и сравниваю измененные файлы сgit difftool
.Есть много
difftool
поддерживаемых Git, я настроилMeld Diff Viewer
для хорошего сравнения GUI.Из приведенного выше сценария я уже знаю, какие изменения вносят другие команды в один и тот же файл, прежде чем
untrack-->staged-->commit
перейти к этапам git, которые помогают мне избежать ненужного конфликта разрешений при слиянии с удаленной командой или создания новой локальной ветви, а также сравнения и объединения в основной ветви.источник
Я попытался пару решений, но я просто так (вы находитесь в локальной папке):
Затем вы сравнили локальный git и номер последнего коммита удаленного git ....
источник
Полный ответ на оригинальный вопрос, который говорил о возможном различном пути на локальном и удаленном, приведен ниже
git fetch origin
git diff master -- [local-path] origin/master -- [remote-path]
Предполагая, что локальный путь - docs / file1.txt, а удаленный путь - docs2 / file1.txt, используйте
git diff master -- docs/file1.txt origin/master -- docs2/file1.txt
Это адаптировано из справочной страницы GitHub здесь и Code-Apprentice ответ выше
источник