2014-01-07 3 views
1

Иногда, когда я использую GitK, есть нагрузка на ветки, на которых меня не интересуют, и они, как правило, мешают мне.Есть ли способ исключить ветки из показа в GitK?

Было бы неплохо указать, какие ветви я хочу, или указать, какие ветви я хочу исключить.

Возможно ли это?

+2

Разве 'gitk branch1 branch2 ...' не работает для вас? Обычно 'gitk' показывает только текущую ветку, если только вы не gitk -all' (хотя она все равно будет аннотировать любые другие указатели ветви/тега, которые находятся в родословной вашей текущей ветви, также будут показаны ветви, которые были объединены в ваш филиал, вплоть до последнего слияния, но не фиксируется на тех ветвях, которые были сделаны с момента последнего слияния). – twalberg

ответ

8

Вы можете указать, какие ветви вы хотите, указав их в качестве аргументов команды gitk. Я предполагаю, что вы уже используете --all, но вам может быть интересно узнать, что есть также флаг --not ... хотя он имеет некоторые побочные эффекты и не слишком полезен в большинстве случаев.

Рассмотрим репозиторий, который выглядит следующим образом:

git checkout feature-B 
gitk --all 

enter image description here

Если вы не указали никаких аргументов, вы получите только ветви вы находитесь на:

gitk 

enter image description here

Если вы укажете несколько ветвей, yo u получить эти ветви, и ветви, которые полностью слиты (т. они не «торчат»). Например, здесь у меня есть feature-B, feature-C, наряду с полностью слиты feature-A и master, но не feature-D:

gitk feature-B feature-C 

enter image description here

Наконец, вы можете использовать --not флаг игнорировать ветвь. Однако, так как ветвь относится ко всем записям, которые ведут к ней, флаг --not будет игнорировать фиксации, которые находятся на ветках, которые вы do укажите.

gitk feature-B --not feature-D 
gitk --all --not feature-D feature-C 

Оба они дадут вам:

enter image description here

Здесь коммиты Initial commit и 1 игнорируются, потому что они принадлежали к расшириться feature-D. Commit 2 также игнорируется по той же причине, но отображается как пустая фиксация, так как было бы неправильно и вводить в заблуждение, чтобы показать фиксацию 3 в качестве первоначальной фиксации в ветке. Иногда этот флаг может быть полезным, но я обычно не использую его.

+2

Ваш пример '-not' немного запутан, так как' gitk feature-B' не будет показывать функцию-D в любом случае, поэтому добавление '-not' было бы полезно, если бы вы * намеревались * получить результат, который вы показали. Лучшим примером вашей критики может быть «gitk -all -not feature-D». – Raman

+1

Отличный момент, спасибо.Я добавил «gitk -all -not feature-D feature-C» к моему ответу, так как он дает тот же результат, что и «gitk feature-B -not feature-D', и делает лучшую работу, выражающую странности '--not'. –

+1

Ха-ха, умный способ избежать редактирования ваших изображений :) Кстати, мне было любопытно, было ли обходное решение для «-not' странности, поэтому я разместил этот вопрос: http://stackoverflow.com/q/20979339/ 430128 – Raman