Есть ли способ увидеть, что будет выдвинуто, если я сделаю git push
команду?
То, что я представляю, - это что-то вроде вкладки «Измененные файлы» в функции GitHub «запрос на извлечение». Когда я отправляю запрос на удаление, я могу посмотреть, что будет выполнено, если они примут мой запрос на удаление:
Командная строка в порядке, но я бы предпочел некоторый графический интерфейс (как на скриншоте выше).
Ответы:
Чтобы получить список файлов, которые нужно отправить, запустите:
пример:
Для изменения кода файлов, которые нужно отправить, запустите:
Чтобы увидеть полные пути к файлам, которые будут меняться, запустите:
Если вы хотите увидеть эти различия в графическом интерфейсе, вам нужно настроить git для этого. См. Как просмотреть вывод 'git diff' с помощью программы визуального сравнения? ,
источник
HEAD
, а не индекс, против origin (git diff origin/master HEAD
). Отклонение индекса даст те же результаты, если и только если у вас нет изменений, внесенных для фиксации. Если у вас есть подготовленные изменения, они будут включены в diff, но явно не будут отправлены, так как они еще не были зафиксированы.git diff --stat origin/master HEAD
правильный ответ.git diff --cached [remote/branch]
делаетВсегда есть всухую:
Он будет делать все, кроме фактической отправки данных.
Если вы хотите более графическое представление, у вас есть куча вариантов.
Tig и gitk-скрипт, поставляемые с git, отображают текущую ветвь вашей локальной копии и ветку удаленного или источника.
Таким образом, любые сделанные вами коммиты после источника являются коммитами, которые будут отправлены.
Откройте gitk из оболочки, находясь в ветке, которую вы хотите нажать, набрав
gitk&
, затем, чтобы увидеть разницу между тем, что находится на пульте, и тем, что вы собираетесь отправить на удаленный, выберите локальный unpressed коммит и щелкните правой кнопкой мыши на пульте и выберите «Diff this -> selected»:источник
git diff --stat HEAD origin/master
илиgit diff HEAD origin/master
. Важным является ГОЛОВКА , в противном случае вы включите в свой дифференциал незатронутые измененияgit push --dry-run
том, что ему все еще требуется разрешение на запись на удаленном компьютере. Так что если у вас есть клон без разрешения на продвижение вверх по потоку, но вы хотите посмотреть, каковы ваши локальные невыпущенные изменения,--dry-run
вы не будете этого делать.branch
иorigin/branch
, я бы пошел с ответом Ionuț G. Stan, поскольку на самом деле он не требует подключения к удаленному репо. Это может быть хорошо или плохо, в зависимости от того, что вам нужно.Просто перечислить коммиты, ожидающие нажатия: ( это тот, который вы запомните )
источник
git cherry -v heroku/remote
если вы храните свой код более чем в одном пульте.Вы, вероятно, хотите бежать
git difftool origin/master...
. это должно показать унифицированную разность того, что находится в вашей текущей ветви, но еще не находится в ветви origin / master, и отобразить ее в выбранном вами графическом инструменте diff. Чтобы быть в курсе всех событий, бегитеgit fetch
первым.источник
git difftool -d origin/master
Я установил свой difftool в meld, так что он прекрасно работает, спасибо!git difftool -d
намного лучше, спасибо Водолею. Единственная проблема заключается в том, что он не обнаруживает перемещенные файлы и показывает их как удаленные и добавленные.Один из способов сравнить вашу локальную версию, прежде чем отправлять ее на удаленный репозиторий (в режиме пробного запуска):
Используйте TortoiseGit:
щелкните правой кнопкой мыши проект корневой папки> TortoiseGit> Различаться с предыдущей версией>
для Версии 2 выберите
refs/remotes/origin/master
источник
Попробуйте
git diff origin/master..master
(предполагая, чтоorigin/master
это ваш апстрим). В отличие отgit push --dry-run
этого, это все еще работает, даже если у вас нет разрешения на запись в апстрим.источник
Используйте
git gui
, там вы можете увидеть список того, что изменилось в вашем фактическом коммите. Вы также можете использоватьgitk
удобный интерфейс для повторных журналов. Просто сравнитеremotes/...
иmaster
посмотрите, что будет толкаться. Он предоставляет интерфейс, похожий на ваш скриншот.Обе программы включены в git.
источник
gitk --all
вы получите полный список всех комментариев. Теперь вы можете сравнить фактическое состояние вашей dev-ветви с вашим пультом, который нужно нажать.Чтобы увидеть, какие файлы изменены, и просмотреть реальные изменения кода по сравнению с
master
веткой, которую вы можете использовать:ПРИМЕЧАНИЕ . Если вам довелось использовать любую из IDE Intellij, вы можете щелкнуть правой кнопкой мыши свой проект верхнего уровня, выбрать Git > Сравнить с веткой > и выбрать нужный источник, например
origin/master
. В появившемся дереве файлов вы можете дважды щелкнуть файлы, чтобы увидеть визуальную разницу. В отличие от опции командной строки выше, вы можете редактировать свои локальные версии из окна diff.источник
Вы можете перечислить коммиты по:
А затем сравните со следующей командой, где число ^ равно числу коммитов (в примере это 2 коммита):
источник
Если вы используете Mac OS X, я бы порекомендовал вам приобрести Tower, это замечательная программа, которая сделала мне приятным общение с Git. Теперь мне больше не нужно запоминать команды терминала, и он предлагает отличный графический интерфейс для просмотра, отслеживания и устранения различий в файлах.
И нет, я не связан с ними, я просто использую их программное обеспечение и он мне действительно нравится.
http://www.git-tower.com/
источник
Просто добавьте два моих цента ... Я хотел реализовать это при запуске заданий в конвейере gitlab на бегунке gitlab. Лучший способ сделать это - использовать этот скрипт:
Также в моем случае я хотел фильтровать файлы по расширению, для достижения этого я использовал:
После этого вы можете, например, переслать этот список куда-нибудь еще, возможно, линтеру;)
Надеюсь, это кому-нибудь поможет.
источник
источник
После
git commit -m "{your commit message}"
этого вы получите хеш коммита до нажатия. Таким образом, вы можете увидеть, что вы собираетесь сделатьgit
, выполнив следующую команду:например:
git diff origin/master c0e06d2
источник