Как я могу увидеть, что я собираюсь нажать с помощью 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
- Если у вас есть права на запись на удаленном
мерзавец толчок - сухой
- Если у вас нет разрешения на запись на удаленном
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'
После этого вы можете, например, переслать этот список куда-нибудь еще, возможно, линтеру;)
Надеюсь, это кому-нибудь поможет.