|
| 1 | +return { |
| 2 | + 'tpope/vim-fugitive', |
| 3 | + config = function() |
| 4 | + vim.keymap.set('n', '<leader>gs', vim.cmd.Git, { desc = '[G]it [S]tatus' }) |
| 5 | + |
| 6 | + local thedondope_fugitive = vim.api.nvim_create_augroup('thedondope-fugitive', {}) |
| 7 | + |
| 8 | + local autocmd = vim.api.nvim_create_autocmd |
| 9 | + autocmd('BufWinEnter', { |
| 10 | + group = thedondope_fugitive, |
| 11 | + pattern = '*', |
| 12 | + callback = function() |
| 13 | + if vim.bo.ft ~= 'fugitive' then |
| 14 | + return |
| 15 | + end |
| 16 | + |
| 17 | + local bufnr = vim.api.nvim_get_current_buf() |
| 18 | + vim.keymap.set('n', '<leader>p', function() |
| 19 | + vim.cmd.Git 'push' |
| 20 | + end, { buffer = bufnr, remap = false, desc = 'Git: Push HEAD to remote' }) |
| 21 | + |
| 22 | + -- rebase always |
| 23 | + vim.keymap.set('n', '<leader>P', function() |
| 24 | + vim.cmd.Git { 'pull', '--rebase' } |
| 25 | + end, { buffer = bufnr, remap = false, desc = 'Git: Pull from remote' }) |
| 26 | + |
| 27 | + -- NOTE: It allows me to easily set the branch i am pushing and any tracking |
| 28 | + -- needed if i did not set the branch up correctly |
| 29 | + vim.keymap.set('n', '<leader>t', ':Git push -u origin ', { desc = 'Git: Push current branch to remote' }) |
| 30 | + end, |
| 31 | + }) |
| 32 | + |
| 33 | + vim.keymap.set('n', 'gu', '<cmd>diffget //2<CR>', { desc = 'Git: Diff: Get changes from left' }) |
| 34 | + vim.keymap.set('n', 'gh', '<cmd>diffget //3<CR>', { desc = 'Git: Diff: Get changes from right' }) |
| 35 | + end, |
| 36 | +} |
0 commit comments