Ответ 1
Не выполняйте pull
:
- сделать a
fetch
(синтаксис такой же, какgit pull
, но он не сливается автоматически) - выполните
diff
между вашей веткой dest и другой веткой - затем выполните
merge
, если вы хотите
Попробуйте diff
мой локальный файл с репозиторией GitHub, прежде чем я отправлю запрос на перенос, чтобы я мог видеть, что будет отображаться, есть ли точный способ сделать это? Я предполагаю, что инструмент сравнения GitHub управляет Git diff
?
Не выполняйте pull
:
fetch
(синтаксис такой же, как git pull
, но он не сливается автоматически)diff
между вашей веткой dest и другой веткойmerge
, если вы хотитеЧтобы сравнить локальный рабочий каталог с удаленной веткой, например origin/master:
git fetch origin master
git fetch
не повлияет на файлы в вашем рабочем каталоге; он не пытается объединить изменения, как git pull
.git diff --summary FETCH_HEAD
--stat
вместо --summary
.git diff FETCH_HEAD -- mydir/myfile.js
--summary
и укажите нужный файл (или дерево).Как уже отмечалось, origin
ссылается на удаленный репозиторий, а master
ссылается на ветку в этом репо. По умолчанию, git использует имя origin
для пульта, поэтому если вы сделаете git clone <url>
, он по умолчанию вызовет этот пульт origin
. Используйте git remote -v
, чтобы увидеть, на что указывает origin
.
У вас может быть несколько пультов. Например, если вы "разветвляете" проект на GitHub, вам, как правило, необходим удаленный доступ к исходному проекту, а также ваш собственный форк. Допустим, вы создали https://github.com/yourusername/someproject
как форк https://github.com/theoriginal/someproject
. По соглашению, вы бы назвали пульт дистанционного управления для исходного репо upstream
, в то время как ваш собственный форк будет origin
. Если вы вносите изменения в свой форк на GitHub и хотите получить эти изменения локально, вы должны использовать git fetch origin master
. Если upstream
внес изменения, которые необходимо синхронизировать локально, прежде чем вносить дополнительные изменения, вы должны использовать git fetch upstream master
.
В комментарии OP, что часть его "проблемы была связана с Windows и Unix LFs", это должно помочь:
Вы можете использовать следующую команду config, чтобы сообщить git -diff игнорировать разницу кода eol.
git config --global core.whitespace cr-at-eol
Вы можете использовать: git diff remote/my_topic_branch my_topic_branch
Где my_topic_branch
- ваша тематическая ветка.