2014-08-30 2 views
6

Я регулярно использую следующую команду: git-logGit журнал Подавить рефов, имена которых соответствуют шаблону

git log --oneline --graph --decorate --all 

Команда идеально подходит для меня, но с одним исключением. Я поддерживаю набор refs в refs/arch/, который я хочу сохранить («arch» означает «архив»), но я не хочу видеть их каждый раз, когда я смотрю на свой журнал git. Я не против их появления, если они являются предками существующих branch или tag, но я действительно не хочу видеть серию коммитов, которые не иначе, а появятся в журнале git, но за то, что они в истории фиксации данного refs/arch/*ref.

Например, на изображении ниже левая сторона является иллюстрацией того, что я вижу в данный момент, когда я запускаю git log --oneline --graph --decorate --all. Как вы можете видеть, фиксация, на которую ссылается refs/arch/2, не будет отображаться в журнале, если ref не существует. (Предположим, что нет refs, которые являются , а не, которые показаны в изображении слева.) Теперь правая часть является иллюстрацией двух альтернативных графиков логов, каждый из которых был бы прекрасно. Я не возражаю видеть что-либо подходящее refs/arch/* до тех пор, пока оно находится в истории фиксации branch или tag. Но на изображении ниже я определенно не хочу видеть фиксацию, на которую ссылается refs/arch/2.

Illustration of question

Как моя команда git-log быть изменен, чтобы подавить refs/arch/* в любом из органов чувств, изображенных на рисунке?

+0

Вы пробовали ту же команду без '--all' вариант? –

+0

@ JoëlSalamin Да, но без '-all' он бы не показывал' dev' или 'dev ~ 1' (если я проверил« master ».) – synaptik

+0

Хорошо, вы правы, и как насчет добавления' short'param' в опцию '--decorate'? –

ответ

6

Что вы хотите:

git log --oneline --graph --decorate --exclude 'refs/arch/*' --all 

Опция --exclude является new in git 1.9.0.


С ручной страницы мерзавца-журналом:

--exclude=<glob-pattern>

Не включать реф сопоставления <glob-pattern> что следующий --all, --branches, --tags, --remotes или --glob бы иначе рассмотрим. Повторения этой опции накапливают шаблоны исключения до следующих --all, --branches, --tags, --remotes, или --glob option (другие параметры или аргументы не очищают накопленные шаблоны).

Узоры данные не должны начинаться с refs/heads, refs/tags или refs/remotes при применении к --branches, --tags или --remotes, соответственно, и они должны начинаться с refs/ применительно к --glob или --all. Если предназначен конечный /*, он должен быть указан явно.


Если вы на какой-то вкус Ubuntu вы можете обновить мерзавца из the Ubuntu Git Maintainers team ppa.

  1. sudo add-apt-repository ppa:git-core/ppa
  2. sudo apt-get update
  3. sudo apt-get upgrade
Смежные вопросы