Я имею тенденцию иметь длинные названия ветвей для git (например, step110_create_search_engine_to_replace_google).Есть ли ярлык для имени ветки git?
Как я могу обращаться к нему просто как step110 в операциях checkout/commit?
Я имею тенденцию иметь длинные названия ветвей для git (например, step110_create_search_engine_to_replace_google).Есть ли ярлык для имени ветки git?
Как я могу обращаться к нему просто как step110 в операциях checkout/commit?
Если вы используете Unix-подобную систему (Linux, Mac OS X, возможно, другие), есть набор правил автозаполнения bash contrib/complete/git-completion.bash
, который позволит вам автоматически заполнять команды git (вы можете ввести git checkout step110<tab>
и свой оболочка автозаполнение-имя филиала
Для активации этого:.
contrib/complete/
есть файл git-completion.bash
Положи куда-нибудь безопасное (как ~/.git-completion
), а затем добавить. следующую строку в ваш файл ~/.bashrc
: source ~/.git-completion
. задайте сеанс оболочки или запустите source ~/.git-completion
, чтобы запустить его в текущем сеансе оболочки.Если вам повезет, достаточно использовать zsh
вместо bash
, я знаю, что oh-my-zsh
имеет GIT AutoCompletion плагинов (я не знаю, как их активировать без oh-my-zsh
).
Источники:
'.bashrc' не работал,' .bash_profile' работал для меня – Jiemurat
Я просто хочу добавить, что этот файл, как правило, уже поставляется с мерзавцем. Вам не нужно загружать его снова. Вам просто нужно найти его и запустить.
В моей системе (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
Вот как я установил его на 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 автодополнение.
Попробуйте этот псевдоним:
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
Очень, очень круто. И работает как очарование! Просто передайте ему любую подстроку в имени ветки, и она будет выбрана для вас. Отличная идея. Это то, что я искал - вкладка слишком медленная и неуклюжая для меня. – Koshmaar
@ Koshmaar лучшая версия https://gist.github.com/iwill/88f5835bfc4e58aa1a88 – iwill
Хорошо, я попробую это через несколько часов, когда на работе. До сих пор, используя этот псевдоним, у меня есть два комментария: 1. Я хотел заменить git checkout для него (с типичным псевдонимом g co), к сожалению, он не поддерживает коммиты и файлы. Вы знаете, git позволяет делать git co
git symbolic-ref
может помочь вам, если вы слишком ленивы, чтобы нажать TAB как я.
$ git symbolic-ref refs/heads/s1 refs/heads/step110_create_search_engine_to_replace_google
$ git reset --hard s1
$ git checkout -b s1-experiment s1
Вы можете псевдоним удаленного филиала, чтобы пропустить набрав remote/
TAB. (Префикс с refs/tags/
, чтобы предотвратить проблемы)
$ git symbolic-ref refs/tags/base refs/remotes/github/a-branch-to-which-you-dont-want-to-push
$ git rebase -i base
активировали вы на 'вно/полный/GIT-completion.bash' правила мерзавец AutoCompletion? Вы должны иметь возможность набирать 'git checkout step110' и иметь свою оболочку для автоматического заполнения имени ветки. –
simont
Привет, Симон, кажется, это ответ, который я ищу. Не могли бы вы рассказать мне, как активировать git-завершение и переместить его, чтобы ответить, чтобы я мог его принять? Большое спасибо. – AdamNYC