Как я могу увидеть, что я собираюсь нажать с помощью git?

Есть ли способ увидеть, что было бы нажато, если бы я выполнил команду git push?

То, что я представляю, - это что-то вроде вкладки "Измененные файлы" функции Gitub "pull request". Когда я выдаю запрос на перенос, я могу посмотреть и посмотреть, что будет втянуто, если они примут мой запрос на тягу: github example of aggregate changes

Командная строка в порядке, но я бы предпочел какой-то графический интерфейс (например, скриншот выше).

Ответ 1

Чтобы список файлов был нажат, запустите:

git diff --stat --cached [remote/branch]

пример:

git diff --stat --cached origin/master

Для кода diff файлов, которые нужно нажать, выполните:

git diff [remote repo/branch]

Чтобы увидеть полные пути к файлам, которые будут меняться, запустите:

git diff --numstat [remote repo/branch]

Если вы хотите увидеть эти различия в графическом интерфейсе, вам нужно настроить для этого git. См. Как просмотреть 'git diff' с помощью программы визуального сравнения?.

Ответ 2

Существует всегда сухой ход:

git push --dry-run

Он будет делать все, кроме фактической отправки данных.

Если вы хотите получить более графическое представление, у вас есть набор параметров.

Tig и gitk script, которые поставляются с git, отображают текущую ветвь вашей локальной копии и ветвь удаленный или источник.

alt text

Таким образом, любые коммиты, которые вы делаете, после того, как происходили, являются коммитами, которые будут нажаты.

Откройте gitk из оболочки, в то время как в ветке, которую вы хотите нажать, набрав gitk&, затем, чтобы увидеть разницу между тем, что находится на пульте дистанционного управления и что вы собираетесь нажать на удаленный, выберите локальную unpushed commit и right -нажмите на пульте дистанционного управления и выберите "Diff this → selected": alt text

Ответ 3

Просто перечислить коммиты, ожидающие нажатия: (это тот, который вы запомните)

git cherry -v

Покажите объекты фиксации рядом с SHA1.

Ответ 4

Вероятно, вы хотите запустить git difftool origin/master.... что должно показать унифицированный разброс того, что находится в вашей текущей ветке, которая еще не находится в ветки origin/master, и отобразить ее в графическом инструменте diff по вашему выбору. Чтобы быть последним, сначала запустите git fetch.

Ответ 5

Один из способов сравнить вашу локальную версию, прежде чем нажимать ее на дистанционное репо (вроде нажатия в сухом режиме):

Использовать TortoiseGit:
Щелкните правой кнопкой мыши проект корневой папки > TortoiseGit > Diff с предыдущей версией >
для версии 2 выберите refs/remotes/origin/master

Ответ 6

Попробуйте git diff origin/master..master (предполагая, что origin/master является вашим восходящим потоком). В отличие от git push --dry-run, это все еще работает, даже если у вас нет права на запись вверх по течению.

Ответ 7

Используйте git gui, там вы можете увидеть список изменений, которые были изменены в вашей фактической фиксации. Вы также можете использовать gitk, который обеспечивает легкий интерфейс для журналов. Просто сравните между remotes/... и master, чтобы увидеть, что будет нажато. Он предоставляет интерфейс, похожий на ваш скриншот.

Обе программы включены в git.

Ответ 8

Чтобы увидеть, какие файлы изменены, и просмотреть реальные изменения кода по сравнению с master веткой, которую вы можете использовать:

git diff --stat --patch origin master

ПРИМЕЧАНИЕ. Если вы используете какую-либо из IDE Intellij, вы можете щелкнуть правой кнопкой мыши проект верхнего уровня, выбрать Git > Сравнить с веткой > и выбрать нужный источник, например, origin/master.В появившемся дереве файлов вы можете дважды щелкнуть файлы, чтобы увидеть визуальную разницу.В отличие от параметра командной строки выше, вы можете редактировать свои локальные версии из окна diff.

Ответ 9

Если вы используете Mac OS X, я бы порекомендовал вам получить Tower, это замечательная программа, которая сделала для меня удовольствие от Git. Теперь мне больше нужно запоминать команды терминала, и он предлагает отличный графический интерфейс для просмотра, отслеживания и устранения различий в файлах.

И нет, я не связан с ними, я просто использую их программное обеспечение и действительно люблю его.

http://www.git-tower.com/

Ответ 10

Вы можете перечислить фиксации:

git cherry -v

И затем сравните с следующей командой, где число ^ равно числу коммитов (в примере, который его совершает 2):

git diff HEAD^^

Ответ 11

  1. Если у вас есть права на запись на удаленном

мерзавец толчок - сухой

  1. Если у вас нет разрешения на запись на удаленном

git diff --stat HEAD пульт/филиал

Ответ 12

Просто добавьте два моих цента... Я хотел реализовать это при запуске заданий в конвейере gitlab на бегунке gitlab. Лучший способ сделать это - использовать этот скрипт:

git diff --name-only $CI_COMMIT_BEFORE_SHA $CI_COMMIT_SHA

Также в моем случае я хотел фильтровать файлы по расширению, для достижения этого я использовал:

git diff --name-only $CI_COMMIT_BEFORE_SHA $CI_COMMIT_SHA '*.py'

После этого вы можете, например, переслать этот список куда-нибудь еще, возможно, линтеру;)

Надеюсь, это кому-нибудь поможет.