return { 'tpope/vim-fugitive', config = function() vim.keymap.set('n', 'gg', vim.cmd.Git) local ThePrimeagen_Fugitive = vim.api.nvim_create_augroup('ThePrimeagen_Fugitive', {}) local autocmd = vim.api.nvim_create_autocmd autocmd('BufWinEnter', { group = ThePrimeagen_Fugitive, pattern = '*', callback = function() if vim.bo.ft ~= 'fugitive' then return end local bufnr = vim.api.nvim_get_current_buf() local opts = { buffer = bufnr, remap = false } vim.keymap.set('n', 'gp', function() vim.cmd.Git 'push' end, opts) -- rebase always vim.keymap.set('n', 'gP', function() vim.cmd.Git { 'pull', '--rebase' } end, opts) -- NOTE: It allows me to easily set the branch i am pushing and any tracking -- needed if i did not set the branch up correctly vim.keymap.set('n', 'gt', ':Git push -u origin ', opts) end, }) vim.keymap.set('n', 'gu', 'diffget //2') vim.keymap.set('n', 'gh', 'diffget //3') end, }