Подтвердить что ты не робот

Есть ли ярлык для имени ветки git?

Я имею тенденцию иметь длинные имена ветвей для git (например, step110_create_search_engine_to_replace_google).

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

4b9b3361

Ответ 1

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

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

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

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

Источники:

Ответ 2

Вот как я установил его на 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

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

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

Ответ 4

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

Ответ 5

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

В моей системе (Centos OS) выполняются следующие шаги:

$ 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

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

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

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