Я нахожусь на Branch-X и добавил еще пару коммитов. Я хочу увидеть все различия между MASTER и ветвью, в которой я работаю, с точки зрения коммитов. Я мог бы просто сделать
git checkout master
git log
а затем
git checkout branch-X
git log
и визуально различать их, но я надеюсь на более простой и менее подверженный ошибкам метод.
Ответы:
Вы можете получить действительно хороший визуальный вывод о том, как ваши ветви отличаются от этого
источник
git log --oneline --graph --all --decorate --abbrev-commit
даст вам аналогичный вывод в более короткой / более читаемой командеgit log --all --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset'
git log --oneline --graph --all --decorate
достаточно,--abbrev-commit
не требуется,--oneline
сокращенно--pretty=oneline --abbrev-commit
Вы можете легко сделать это с
Это покажет вам коммиты, которые есть у Branch-X, а у мастера нет.
источник
branch-X
вы можете использоватьgit log master..
git log master...branch-X
(три точки вместо двух). Смотритеman gitrevisions
для получения дополнительной информации.Я думаю, что это вопрос выбора и контекста. Я предпочитаю использовать
Он покажет коммиты в разработке, которые не находятся в основной ветке.
Если вы хотите увидеть, какие файлы действительно изменены, используйте
Если вы не укажете аргументы, он будет отображать полную разницу. Если вы хотите увидеть визуальные различия, установите их
meld
на Linux илиWinMerge
Windows. Убедитесь, что они являются difftools по умолчанию. Затем используйте что-то вродеВ случае, если вы хотите сравнить его с текущей веткой. Удобнее использовать HEAD вместо имени ветки, как use:
Он покажет вам все коммиты, которые собираются объединить
источник
--no-merges
например:git log origin/master..HEAD --oneline --no-merges
Если вы работаете в Linux,
gitg
есть способ сделать это очень быстро и графически.Если вы настаиваете на командной строке, вы можете использовать:
Чтобы сделать
git log
лучше по умолчанию, я обычно устанавливаю следующие глобальные настройки:источник
Я бы предложил следующее, чтобы увидеть разницу "в коммитах". Для симметричной разности повторите команду с перевернутыми аргументами:
источник
если вы хотите использовать gitk:
у этого есть хороший старый школьный графический интерфейс
источник
Не идеальный ответ, но лучше работает для людей, использующих Github:
Перейти к вашему репо:
Insights -> Network
источник
Если вы хотите сравнить на основе сообщений фиксации, вы можете сделать следующее:
источник
--oneline
и трубопроводовcut
вы можете использоватьgit log --format='%s'
Способствуя этому, потому что это позволяет журналы a и b визуализироваться визуально, рядом, если у вас есть инструмент визуального сравнения. Замените команду diff в конце командой, чтобы запустить визуальный инструмент сравнения.
источник
Я использовал некоторые ответы и нашел тот, который соответствует моему случаю (убедитесь, что все задачи находятся в ветке релиза).
Другие методы также работают, но я обнаружил, что они могут добавлять строки, которые мне не нужны, например коммиты слияния, которые не добавляют никакой ценности.
или вы можете сравнить свой текущий с мастером
git fetch
чтобы убедиться, что вы используете обновленную информацию.Таким образом, каждый коммит будет в строке, и вы можете скопировать / вставить его в текстовый редактор и начать сравнивать задачи с коммитами, которые будут объединены.
источник