return { "tpope/vim-fugitive", dependencies = { "tpope/vim-rhubarb", }, keys = { { "<leader>gx", [[<Cmd>G<CR>]], desc = "Toggle [G]it status window" }, { "<leader>gs", [[<Cmd>Git<CR>]], desc = "Toggle [G]it [S]tatus window" }, { "<leader>gfd", [[<Cmd>Gdiffsplit<CR>]], desc = "[G]it [D]iff current file against index with [F]ugitive", }, { "<leader>gc", [[<Cmd>Git commit<CR>]], desc = "[G]it [C]ommit" }, { "<leader>gb", [[<Cmd>Git blame -C<CR>]], desc = "[G]it [B]lame" }, { "<leader>gp", [[<Cmd>Git push<CR>]], desc = "[G]it [P]ush" }, { "<leader>gf", [[<Cmd>Git push --force<CR>]], desc = "[G]it [F]orce push" }, { "<leader>gu", [[<Cmd>Git pull<CR>]], desc = "[G]it p[U]ll" }, { "<leader>gh", [[<Cmd>Git diff --cached<CR>]], desc = "[G]it diff current staged changes", }, { "<leader>go", "<cmd>GBrowse<CR>", desc = "[B]rowse [G]it URL for fugitive object under cursor", }, { "<leader>go", ":'<,'>GBrowse<CR>", mode = "v", desc = "[B]rowse [G]it URL for selected lines", silent = true, }, }, }