Удалите /etc/yum.repos.d/CentOS-Base.repo.rpmnew
, затем отредактируйте /etc/yum.repos.d/CentOS-Base.repo
и включите основной репозиторий, не комментируя строку baseurl =
и комментируя строку mirrorlist =
.
К сожалению, это ошибка в zsh
дополнении для git. Вы можете найти обсуждение в списке рассылки 'zsh' здесь.
Даниэль Шахаф предоставил патч для '_git':
diff --git a/Completion/Unix/Command/_git b/Completion/Unix/Command/_git
index 518e6d198..45a0fa622 100644
--- a/Completion/Unix/Command/_git
+++ b/Completion/Unix/Command/_git
@@ -6609,20 +6609,33 @@ __git_files_relative () {
(( $+functions[__git_files] )) ||
__git_files () {
local compadd_opts opts tag description gitcdup gitprefix files expl
+ local pref
zparseopts -D -E -a compadd_opts V: J: 1 2 n f X: M: P: S: r: R: q F:
zparseopts -D -E -a opts -- -cached -deleted -modified -others -ignored -unmerged -killed x+: --exclude+:
tag=$1 description=$2; shift 2
- gitcdup=$(_call_program gitcdup git rev-parse --show-cdup 2>/dev/null)
- __git_command_successful $pipestatus || return 1
+ case $(_call_program gitinworktree git rev-parse --is-inside-work-tree 2>/dev/null) in
+ (true)
+ gitcdup=$(_call_program gitcdup git rev-parse --show-cdup 2>/dev/null)
+ __git_command_successful $pipestatus || return 1
- gitprefix=$(_call_program gitprefix git rev-parse --show-prefix 2>/dev/null)
- __git_command_successful $pipestatus || return 1
+ gitprefix=$(_call_program gitprefix git rev-parse --show-prefix 2>/dev/null)
+ __git_command_successful $pipestatus || return 1
+
+ local pref=$gitcdup$gitprefix$PREFIX
+ ;;
+ (false)
+ local pref=
+ ;;
+ (*)
+ # XXX what to do?
+ return 1
+ ;;
+ esac
# TODO: --directory should probably be added to $opts when --others is given.
- local pref=$gitcdup$gitprefix$PREFIX
# First allow ls-files to pattern-match in case of remote repository
files=(${(0)"$(_call_program files git ls-files -z --exclude-standard ${(q)opts} -- ${(q)${pref:+$pref\\\*}} 2>/dev/null)"})
@@ -7585,7 +7598,8 @@ _git() {
;;
(option-or-argument)
curcontext=${curcontext%:*:*}:git-$words[1]:
- (( $+opt_args[--git-dir] )) && local -x GIT_DIR=$opt_args[--git-dir]
+ (( $+opt_args[--git-dir] )) && local -x GIT_DIR=${(e)opt_args[--git-dir]}
+ (( $+opt_args[--work-tree] )) && local -x GIT_WORK_TREE=${(e)opt_args[--work-tree]}
if ! _call_function ret _git-$words[1]; then
if zstyle -T :completion:$curcontext: use-fallback; then
_default && ret=0
Он явно применим к zsh 5.4.1
, но у меня это не сработало, YMMV.
Я обновлю этот ответ по мере решения проблемы.
РЕДАКТИРОВАТЬ:
С приведенным выше патчем это работает, но важно, где вы поместите add
— оно должно быть в конце:
git --git-dir=$HOME/.dotfiles --work-tree=$HOME/ add
Еще одна вещь, на которую стоит обратить внимание — это несколько медленно .
Последнее (2018 -04 -20 )официальное завершение git работает хорошо.
https://github.com/git/git/tree/master/contrib/completion
Для установки
mkdir -p ~/.zsh && cd $_
wget https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash
wget https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.zsh
wget https://raw.githubusercontent.com/git/git/master/contrib/completion/git-prompt.sh
# The default behavior for 'git <TAB><TAB>' is to show a 10+ lines 'common commands' list.
# I prefer a full list.
# Better way to modify?
sed -i.bak '/^__git_zsh_cmd_common/,/{/ s/{/{\n\treturn/' _git
# add zshrc settings
vi ~/.zshrc
fpath=(~/.zsh $fpath)
# the next two lines are not needed if using oh-my-zsh
autoload -Uz compinit
compinit
ПС,
Мой предыдущий ответ был о -моем -плагине zsh gitfast. Но в нем есть ошибки, и он очень устарел.