Есть ли способ увидеть, какие файлы были изменены в ветке?Получить все файлы, которые были изменены в ветке git
ответ
Альтернативой ответ по @Marco Понти, и избегая кассе:
git diff --name-only <notMainDev> $(git merge-base <notMainDev> <mainDev>)
Если ваша конкретная оболочка не понимает $() построить, использовать обратно-клещи вместо этого.
ах! это хорошая забава, теперь как насчет того, хочу ли я сказать
'git diff --name-only
hmmm, ну, я предполагаю, что я имею в виду, что я хотел бы сделать git diff --name-only
Все, что вам нужно сделать, это следующее:
git checkout <notMainDev>
git diff --name-only <mainDev>
Это покажет вам только имена файлов, которые отличаются между двумя ветвями.
Вау быстро и тоже точка. Спасибо. Кстати, я люблю git. это всегда быстро и до – Raif
Я считаю, что также будет отображаться материал, который изменился на '
Да, это правда @twalberg, он будет показывать эти изменения, если ветви расходятся. Я предполагал, что «notMainDev» будет постоянно обновляться с фиксацией mainDev ... Обычно я считаю полезным также видеть эти различия. –
git show --stat origin/branch_name
Это даст вам список файлов, которые были добавлены или изменены под этой веткой.
Это неправильно, это показывает только файлы, измененные в головной фиксации этой ветви, а не всей ветви. – notJim
Что делать, если это может быть так просто?
git changed
Если вы готовы предположить, что основная ветвь называется «мастер», и что вы создаете ваши другие ветви от мастера, то вы можете добавить этот псевдоним в файл ~/.gitconfig
, чтобы сделать это так легко:
cbranch = !"git branch | grep '*' | cut -f2 -d' '"
changed = !"git diff --name-only $(git cbranch) $(git merge-base $(git cbranch) master)"
Эти предположения будут работать для большинства людей в большинстве ситуаций, но вы должны знать, что вы делаете их.
Кроме того, вы должны использовать оболочку, которая поддерживает $()
. It's very likely that your shell supports this.
Расширение от того, что @twalberg и @iconoclast было, если вы используете CMD по какой-либо причине, вы можете использовать:
FOR /F "usebackq" %x IN (`"git branch | grep '*' | cut -f2 -d' '"`) DO FOR /F "usebackq" %y IN (`"git merge-base %x master"`) DO git diff --name-only %x %y
Я не могу поверить, что существует так много способов сделать это. Я использую WhatChanged, как кто-то писал раньше, только со следующими аргументами:
git whatchanged --name-only --pretty="" origin..HEAD
Это просто список имен файлов, а только те, которые изменились на текущей ветви.
Это самый легкий ответ здесь, поскольку он не требует дополнительной информации. Результат выглядит правильно, и его легче запомнить, чем принятый ответ! – RickMeasham
Спасибо, это интересно, более многословно. Он обеспечивает вывод для каждого фиксации в обратном порядке. _git-whatchanged - Показать журналы с разницей каждая фиксация вводит_ https://git-scm.com/docs/git-whatchanged – nealmcb
Следующий Пакетный файл основан на ответе twalberg, но будет работать в Windows:
@ECHO OFF
C: :: <== OR USE A DIFFERENT DRIVE
CD \path\to\where\git\files\are :: <== CHANGE TO THE ACTUAL PATH
SET /p b="Enter full path of an ALREADY MERGED branch to compare with origin/master: "
bash --login -i -c "git diff --name-only %b% $(git merge-base %b1% origin/drop2/master)"
PAUSE
выше предполагает, что основная отрасль происхождение/мастер и что мерзавец Баш был включен, когда был установлен Git (и его местоположение находится в среде пути). Я на самом деле нужен, чтобы показать реальные различия с помощью инструмента сконфигурирован Diff (KDiff3) так подставляться следующей командой баша выше:
bash --login -i -c "git difftool --dir-diff %b% $(git merge-base %b1% origin/drop2/master)"
мне очень понравился @ twalberg Ответит, но я не хочу, чтобы ввести текущую ветку все время. Поэтому я использую это:
git diff --name-only $(git merge-base master HEAD)
изумлено это не было сказано до сих пор!
git diff master...branch
Так увидеть изменения только на branch
Чтобы проверить текущее использование филиала
git diff master...
Благодаря JQR
Это короткая рука для
git diff $(git merge-base master branch) branch
поэтому слияние база (самая последняя общая фиксации между ветвями) и кончик ветви
Кроме того, используя происхождения/мастер, а не просто мастер поможет в случае, если ваш местный мастер от
Я использую Grep поэтому я получаю только линии с дифф --git которые путь файлов:
git diff branchA branchB | grep 'diff --git'
// OUTPUTS ALL FILES WITH CHANGES, SIMPLE HA :)
diff --git a/package-lock.json b/package-lock.json
- 1. git: определить файлы, которые были изменены на ветке
- 2. Как слить файлы, которые были изменены в GIT
- 3. В Subversion перечислены файлы, которые были изменены на соединительной линии, но не на ветке, и которые были изменены как в
- 4. Git - Сделать все файлы в ветке грязными
- 5. Как узнать, какие файлы были изменены в ветке?
- 6. Git: Показать файлы, которые не были недавно изменены
- 7. Mercurial - все файлы, которые были изменены в наборе изменений?
- 8. Найти файлы, которые недавно были изменены
- 9. Bash отображает обычные файлы, которые были изменены
- 10. Как обрабатывать только файлы, которые были изменены?
- 11. Найти файлы, которые были изменены рекурсивно
- 12. Как получить журнал git, файлы которого были удалены/изменены?
- 13. Как узнать, какие файлы были изменены в ветке git (не разница между двумя ветвями)
- 14. Reviewboard RBTools: получить файлы, которые были изменены из разных дифф
- 15. git - Как просмотреть все файлы, которые не были изменены с определенной даты?
- 16. Объединение файлов, которые были изменены двумя разработчиками
- 17. Как получить файлы, которые были изменены, добавлены или изменены в каталоге репозитория
- 18. Получить только строки, которые были изменены
- 19. Git - см. Файлы, которые были изменены, даже если изменения были удалены
- 20. Почему git видит все файлы, которые были изменены при копировании файлов поверх других файлов?
- 21. Показать, какие файлы были изменены в SmartGit
- 22. Список файлов, которые были изменены/изменены сегодня одним пользователем
- 23. Выделите строки, которые были изменены
- 24. Показать, какие файлы были изменены во входящих git-коммитах
- 25. Отправить электронное письмо, если были изменены файлы (в git)
- 26. Как узнать, какие файлы были изменены в заданной git-фиксации?
- 27. Git дифф, чтобы показать только те строки, которые были изменены
- 28. Как узнать, какие файлы были изменены из forking-git
- 29. После выполнения команды git pull команда git имеет некоторые измененные файлы, которые не были изменены
- 30. получить набор файлов, которые были изменены после определенной даты
возможно дубликат [Как я могу узнать, какие файлы были изменены в отрасли?] (HTTP: // StackOverflow .com/вопросы/1749323/как-могу-я-найти-затраченные какую-файлы, которые были-модифицированными -in-a-branch) –
Они не мои сотрудники, они мои коллеги, и это не они, в частности, так как люди в целом. Но да, перечитывая этот пост, он кажется немного агро. :) – Raif
Можете ли вы использовать github или bitbucket, gitlab? Есть инструменты для управления именно этой ситуацией. Разработчик делает запрос на извлечение. Вы получите запрос, и у вас будет доступ к очень хорошему интерфейсу, который покажет вам все изменения, внесенные в каждый файл. Вы даже можете прокомментировать, запросить изменения и т. Д. Когда изменения будут хорошими, вы можете принять запрос, который объединит изменения в запрошенную ветвь (как правило, разрабатывается). Это лучший способ справиться с этой ситуацией. –