Как я могу увидеть, что я собираюсь нажать с Git? - PullRequest
521 голосов
/ 03 сентября 2010

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

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

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

Ответы [ 12 ]

589 голосов
/ 03 сентября 2010

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

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

пример:

git diff --stat --cached origin/master

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

git diff [remote repo/branch]

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

git diff --numstat [remote repo/branch]

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

175 голосов
/ 03 сентября 2010

Всегда есть всухую:

git push --dry-run

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

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

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

alt text

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

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

151 голосов
/ 04 марта 2016

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

git cherry -v

Показать темы коммитоврядом с SHA1.

19 голосов
/ 16 сентября 2010

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

8 голосов
/ 21 марта 2013

Один из способов сравнить вашу локальную версию перед отправкой ее на удаленный репозиторий (в режиме пробного запуска):

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

7 голосов
/ 22 апреля 2015

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

5 голосов
/ 03 сентября 2010

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

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

4 голосов
/ 18 июня 2015

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

git diff --stat --patch origin master

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

2 голосов
/ 15 июля 2011

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

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

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

1 голос
/ 27 сентября 2018
  1. Если у вас есть права на запись на удаленном

git push --dry-run

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

git diff --stat HEAD remote / branch

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...