2016-07-27 7 views
1

Недавно я нашел эту команду, чтобы получить список последних 10 проверенных ветвей.git alias для последних ветвей проверки

git reflog | egrep -io 'moving from ([^[:space:]]+)' | awk '{ print $3 }' | awk ' !x[$0]++' | head -n10 

Я хотел создать псевдоним для этого вызова «мерзавец недавно», но когда я пытаюсь запустить команду конфигурации он выдает ошибку. «события не найдено»

git config --global alias.recent 'reflog | egrep -io 'moving from ([^[:space:]]+)' | awk '{ print $3 }' | awk ' !x[$0]++' | head -n10' 

Есть в любом случае, чтобы получить эту сложную команду в качестве псевдонима. Если кто-то знает, как это сделать как псевдоним, кроме того, что кроме параметра числа будет очень признателен. -n10 в конце команды указывает, сколько ветвей нужно вернуть.

ответ

1

Это для тех, кто натыкается на этот вопрос, и это команда их интересует. Я определил путь к этому.

Для одного я сдался, пытаясь сделать это, используя команду git config. Вместо этого я открыл сам файл конфигурации git и добавил псевдоним таким образом. Adding git aliases

Вторым я определил, что мой сценарий верен, мне просто нужно было добавить его как функцию. my_alias = "F() {<ваш комплекс команда>};! F" How to add Advanced alias template in git

Вот пример моего псевдонима.

 
[alias] 
    recent = "!f() { git reflog | egrep -io 'moving from ([^[:space:]]+)' | awk '{ print $3 }' | awk ' !x[$0]++' | head -n${1-10}; }; f" 
+1

Для чего это стоит, это то, что я делаю - хорошо, это или избегать использования сложных псевдонимов. :-) Проблема заключается в том, что сложные псевдонимы требуют использования символа '!' И большого количества кавычек, а оболочкам нравится употреблять символы '!' И различные виды цитирования. Получение их, чтобы выжить в оболочке и в файл псевдонима, является ненужной головной болью, поскольку вы можете просто запустить «git config --global --edit» или эквивалент. – torek

0

«событие не найдено» происходит от вашего bash, который интерпретирует ! в командной строке ... вы перепутали свои одиночные кавычки во второй команде. Должно быть ясно, как это исправить; говорят, что если у вас есть проблемы, выясняя его ...

двойные кавычки также не работают:

> echo '!' 
! 
> echo "!" 
bash: !: event not found 

Подсказка: вы можете сделать внешние кавычки ', а затем использовать " внутри, это будет избежать полной включая команду ! от bash.

У меня нет времени сейчас, чтобы сделать вам это заявление, но я уверен, что вы поймете это в мгновение ока ...;)

+0

Вместо этого я добавил двойные кавычки, если это то, о чем вы говорите, проблема, и я все равно получаю ту же ошибку.---- git config --global alias.recent "reflog | egrep -io" перемещение из ([^ [: space:]] +) "| awk '{print $ 3}' | awk '! X [$ 0] ++ '| head -n10 " –

1

Хотя это немного отличается от того, что вы просили, если может возникнуть больше смысла обнаруживать ветви, которые были изменены недавно.

В этом случае git branch на самом деле имеет --sort=<key> вариант, который может печатать ветви отсортированные по заданному ключу, например:

git branch --sort=-committerdate -v 

Это будет сортировать ветви от committerdate, но с инверсией, как указано префиксом - как в -committerdate. А также печать последнего коммита, чтобы настроить псевдоним, например br, выполните следующую команду:

git config --global alias.br "branch --sort=-committerdate -v" 

См git-branch manual.

+0

Мне тоже нравится это, но не подходит для моего использования. Там, где я работаю, есть четыре разработчика, которые ежедневно работают в одном репозитории, который содержит дюжину мультисайтов Drupal. Из-за этой установки у нас более 1000 филиалов, большинство из которых названы аналогично. Мы работаем над несколькими проектами за неделю, поэтому мне просто нужен способ увидеть только список ветвей, которые я проверил недавно, поэтому я могу легко выполнять многозадачность и маневрировать, хотя моя работа. Я думаю, что ваша команда покажет мне свою работу, которая очень крутая, но подавляющая, когда я не могу вспомнить, что я назвал веткой. –

+0

Спасибо, хотя, я думаю, я тоже смогу найти способ использовать это. –

Смежные вопросы