Есть ли ярлык для имени ветки git? - PullRequest
25 голосов
/ 04 марта 2012

У меня, как правило, длинные имена веток для git (например, step110_create_search_engine_to_replace_google).

Как мне обозначить его просто как step110 в инструкциях checkout / commit?

Ответы [ 5 ]

32 голосов
/ 04 марта 2012

Если вы работаете в Unix-подобной системе (Linux, Mac OS X, возможно, другие), есть набор правил автозаполнения bash contrib/complete/git-completion.bash, который позволит вам автоматически завершать команды git (вы можете набрать git checkout step110<tab> и ваша оболочка автоматически заполняет имя ветви.

Чтобы активировать это:

  • Если у вас есть источник git, в contrib/complete/ есть файл git-completion.bash.Поместите это в безопасное место (например, ~/.git-completion), а затем добавьте в файл ~/.bashrc следующую строку: source ~/.git-completion. Либо перезапустите сеанс оболочки, либо запустите source ~/.git-completion, чтобы запустить его в текущем сеансе оболочки.
  • Если у вас нет источника git, вы можете получить скрипт из здесь (github.com). Затем следуйте тем же инструкциям, что и выше.

Если вам повезло использовать zsh вместо bash, я знаю, что oh-my-zsh имеет плагины git для автозаполнения (я не уверен, как их активировать без oh-my-zsh).

Источники:

12 голосов
/ 15 июня 2012

Вот как я установил его на OS X ...

Сначала проверьте, находится ли он в вашей локальной системе. Похоже, MacPorts и Homebrew загрузили его для вас.

$ find / -name "git-completion.bash"

В противном случае, загрузите его ...

$ wget https://raw.github.com/git/git/master/contrib/completion/git-completion.bash -O ~/.git-completion

Если у вас нет wget, вы можете легко установить его с помощью Homebrew или использовать cURL .

$ vim ~/.profile

... или ваш редактор по вашему выбору.

Затем добавьте ...

source ~/.git-completion

Если ваше автозаполнение не работает автоматически ...

$ source ~/.profile

... и тогда у вас есть автозаполнение Git.

3 голосов
/ 01 июля 2014

Попробуйте этот псевдоним:

cb = "!checkoutbranch() { local branches=`git branch | grep -i $1 | tr -d '* '`; if [[ `echo \"$branches\" | wc -l | tr -d ' '` != 1 ]]; then echo \"Matched multiple branches:\"; git branch | grep --color -i $1; exit 1; fi; git checkout $branches; }; checkoutbranch"

Оформить заказ на ветку develop:

git cb dev
2 голосов
/ 14 ноября 2017

git symbolic-ref может помочь, если вам лень даже нажимать TAB . Вы можете создать псевдоним для ветви.

$ # Define short name 's1'
$ git symbolic-ref refs/heads/s1 refs/heads/step110_create_search_engine_to_replace_google
$
$ # You can use short name 's1' afterwards
$ git reset --hard s1
$ git checkout -b s1-experiment s1
$
$ # Remove the short name (don't use branch -d here or the original branch gets deleted!)
$ git symbolic-ref -d refs/heads/s1

Удаленные ветви можно ссылаться таким же образом, чтобы сохранить, набрав remote/ TAB . (В этом случае я рекомендую использовать префикс refs/tags/ вместо refs/heads/, чтобы предотвратить случайное перемещение удаленного эталона)

$ git symbolic-ref refs/tags/base refs/remotes/github/a-very-long-named-remote-branch
$ git rebase -i base
1 голос
/ 24 апреля 2012

Я просто хочу добавить, что этот файл обычно уже поставляется с git.Вам не нужно загружать его снова.Вам просто нужно найти его и запустить.

В моей системе (ОС Centos) работают следующие шаги:

$ locate completion.bash
/usr/share/doc/git-1.7.4.1/contrib/completion/git-completion.bash
$ source /usr/share/doc/git-1.7.4.1/contrib/completion/git-completion.bash

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

В моем случае я бы добавил последнюю команду в мой файл .bashrc

source /usr/share/doc/git-1.7.4.1/contrib/completion/git-completion.bash
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...