diff --git a/runtime/ftplugin/gitcommit.vim b/runtime/ftplugin/gitcommit.vim
index 9b1998a..9342799 100644
--- a/runtime/ftplugin/gitcommit.vim
+++ b/runtime/ftplugin/gitcommit.vim
@@ -1,66 +1,57 @@
 " Vim filetype plugin
 " Language:	git commit file
 " Maintainer:	Tim Pope <vimNOSPAM@tpope.org>
-" Last Change:	2019 Dec 05
+" Last Change:	2022 Jan 05
 
 " Only do this when not done yet for this buffer
 if (exists("b:did_ftplugin"))
   finish
 endif
 
-runtime! ftplugin/git.vim
 let b:did_ftplugin = 1
 
-setlocal comments=:# commentstring=#\ %s
 setlocal nomodeline tabstop=8 formatoptions+=tl textwidth=72
 setlocal formatoptions-=c formatoptions-=r formatoptions-=o formatoptions-=q formatoptions+=n
 setlocal formatlistpat+=\\\|^\\s*[-*+]\\s\\+
+setlocal include=^+++
+setlocal includeexpr=substitute(v:fname,'^[bi]/','','')
 
-let b:undo_ftplugin = 'setl modeline< tabstop< formatoptions< tw< com< cms< formatlistpat<'
+let b:undo_ftplugin = 'setl modeline< tabstop< formatoptions< tw< com< cms< formatlistpat< inc< inex<'
 
-if exists("g:no_gitcommit_commands") || v:version < 700
+let s:l = search('\C\m^[#;@!$%^&|:] -\{24,\} >8 -\{24,\}$', 'cnW', '', 100)
+let &l:comments = ':' . (matchstr(getline(s:l ? s:l : '$'), '^[#;@!$%^&|:]\S\@!') . '#')[0]
+let &l:commentstring = &l:comments[1] . ' %s'
+unlet s:l
+
+if exists("g:no_gitcommit_commands")
   finish
 endif
 
-if !exists("b:git_dir")
-  let b:git_dir = expand("%:p:h")
-endif
-
-command! -bang -bar -buffer -complete=custom,s:diffcomplete -nargs=* DiffGitCached :call s:gitdiffcached(<bang>0,b:git_dir,<f-args>)
+command! -bang -bar -buffer -complete=custom,s:diffcomplete -nargs=* DiffGitCached :call s:gitdiffcached(<bang>0, <f-args>)
 
 let b:undo_ftplugin = b:undo_ftplugin . "|delc DiffGitCached"
 
-function! s:diffcomplete(A,L,P)
+function! s:diffcomplete(A, L, P) abort
   let args = ""
   if a:P <= match(a:L." -- "," -- ")+3
     let args = args . "-p\n--stat\n--shortstat\n--summary\n--patch-with-stat\n--no-renames\n-B\n-M\n-C\n"
   end
-  if exists("b:git_dir") && a:A !~ '^-'
-    let tree = fnamemodify(b:git_dir,':h')
-    if strpart(getcwd(),0,strlen(tree)) == tree
-      let args = args."\n".system("git diff --cached --name-only")
-    endif
+  if a:A !~ '^-' && !empty(getftype('.git'))
+    let args = args."\n".system("git diff --cached --name-only")
   endif
   return args
 endfunction
 
-function! s:gitdiffcached(bang,gitdir,...)
-  let tree = fnamemodify(a:gitdir,':h')
+function! s:gitdiffcached(bang, ...) abort
   let name = tempname()
-  let git = "git"
-  if strpart(getcwd(),0,strlen(tree)) != tree
-    let git .= " --git-dir=".(exists("*shellescape") ? shellescape(a:gitdir) : '"'.a:gitdir.'"')
-  endif
   if a:0
-    let extra = join(map(copy(a:000),exists("*shellescape") ? 'shellescape(v:val)' : "'\"'.v:val.'\"'"))
+    let extra = join(map(copy(a:000), 'shellescape(v:val)'))
   else
     let extra = "-p --stat=".&columns
   endif
-  call system(git." diff --cached --no-color --no-ext-diff ".extra." > ".(exists("*shellescape") ? shellescape(name) : name))
-  exe "pedit ".(exists("*fnameescape") ? fnameescape(name) : name)
+  call system("git diff --cached --no-color --no-ext-diff ".extra." > ".shellescape(name))
+  exe "pedit " . fnameescape(name)
   wincmd P
-  let b:git_dir = a:gitdir
-  command! -bang -bar -buffer -complete=custom,s:diffcomplete -nargs=* DiffGitCached :call s:gitdiffcached(<bang>0,b:git_dir,<f-args>)
-  nnoremap <buffer> <silent> q :q<CR>
+  command! -bang -bar -buffer -complete=custom,s:diffcomplete -nargs=* DiffGitCached :call s:gitdiffcached(<bang>0, <f-args>)
   setlocal buftype=nowrite nobuflisted noswapfile nomodifiable filetype=git
 endfunction
