mirror of
https://github.com/tpope/vim-fugitive.git
synced 2026-04-26 09:04:40 +08:00
Compare commits
134 Commits
v2.0
...
blame_message
| Author | SHA1 | Date | |
|---|---|---|---|
| 62c50ff296 | |||
| c2877d0d5c | |||
| c640ee78a8 | |||
| c9b26e20d3 | |||
| 79f4a49a94 | |||
| 0cb46585ac | |||
| d4df8882c5 | |||
| d5208d494f | |||
| cf248fa66d | |||
| 779949c255 | |||
| 785bb15745 | |||
| fbf89773b4 | |||
| 02a0be79aa | |||
| b2767d204b | |||
| 26504eecbd | |||
| 0d281a2607 | |||
| b2665cc650 | |||
| c3052fba84 | |||
| 4f24757df2 | |||
| eb945e9a11 | |||
| 90cbbf5854 | |||
| 87c1bda4d5 | |||
| c5c1bd66d8 | |||
| f44845e440 | |||
| 245ce889e2 | |||
| 444ba9fda5 | |||
| b754bc2031 | |||
| b3a8be6975 | |||
| 58ed86e434 | |||
| aac85a268e | |||
| c00ebd75ac | |||
| 50cc268d29 | |||
| 4865891565 | |||
| 3439f999b1 | |||
| 6460734b5e | |||
| bdd216827a | |||
| 0ac4915cd7 | |||
| 841adb49ad | |||
| 57afba5bdd | |||
| e1ae9effbc | |||
| 19d1c944db | |||
| 9315ec694d | |||
| 90250785d1 | |||
| 099d65826e | |||
| 008b957086 | |||
| 16c2b7abb9 | |||
| 1e3f1103d9 | |||
| 9835920a3c | |||
| fd36aa9c61 | |||
| 4dd41688cf | |||
| 18d6d1ab82 | |||
| 9ce67cdc93 | |||
| bf04261080 | |||
| 52d180af0a | |||
| 14daf094d9 | |||
| ac904e806d | |||
| 9f768cd3bc | |||
| 09cdce7add | |||
| 8851b8fe64 | |||
| cfa485ede7 | |||
| 207c643ea4 | |||
| cac2c8ef8e | |||
| a9a22e0e4e | |||
| c3e918072f | |||
| d854197c03 | |||
| d8ce8d1d03 | |||
| 23faeadc7c | |||
| 1ecd12d523 | |||
| f8aa87a4b5 | |||
| dba8a0705d | |||
| 8cf3d94a3a | |||
| 28de2a1ddd | |||
| 01cda4d443 | |||
| b5188a1b4f | |||
| 8e63140181 | |||
| cec56ef5ff | |||
| 1e755064e9 | |||
| 0b43b51d77 | |||
| 5dcf8a0175 | |||
| 2509641eac | |||
| 073f3a37b9 | |||
| b7b23001de | |||
| b319b69453 | |||
| 03cc95cc19 | |||
| 7c4a906147 | |||
| b5b2548a87 | |||
| ca727b07f1 | |||
| 0fbbe0b3a4 | |||
| 1c844375fa | |||
| e065e4f841 | |||
| 21b6dd7aee | |||
| 935a2cccd3 | |||
| c2908b174d | |||
| b0e38f08dc | |||
| 4cc201cbe3 | |||
| baa05dcfda | |||
| 0095769029 | |||
| e8b94098bb | |||
| eb8eb1850a | |||
| 933f6a1e1d | |||
| 34719016ec | |||
| 2c8461db08 | |||
| d3b98d9886 | |||
| 5699f4613c | |||
| 0374322ba5 | |||
| 90ee6fb5d2 | |||
| 04fe4bfcd9 | |||
| 7423d72b51 | |||
| 24d4098ceb | |||
| 5aaa65736d | |||
| 5d1c219ee5 | |||
| a739112bfc | |||
| d376506177 | |||
| 9af975c82c | |||
| 11f89ba749 | |||
| 45e5317200 | |||
| ee2b0ecdb8 | |||
| 94a5d6fe2f | |||
| 0cd33c6170 | |||
| 6239f5ed8e | |||
| 188692556a | |||
| 716f3d2d4e | |||
| 8576741d61 | |||
| 32957cb552 | |||
| fdc8569c18 | |||
| 7fb703534a | |||
| 41cdbdcd62 | |||
| 91900baad1 | |||
| fb5661211d | |||
| 276f89837f | |||
| 4581cd4217 | |||
| df103dc595 | |||
| 989fb15b8c | |||
| 123d2e096d |
+15
-11
@@ -11,8 +11,8 @@ Vim's diff handling capabilities to stage a subset of the file's
|
||||
changes.
|
||||
|
||||
Bring up the output of `git status` with `:Gstatus`. Press `-` to
|
||||
`add`/`reset` a file's changes, or `p` to `add`/`reset` `--patch` that
|
||||
mofo. And guess what `:Gcommit` does!
|
||||
`add`/`reset` a file's changes, or `p` to `add`/`reset` `--patch`. And guess
|
||||
what `:Gcommit` does!
|
||||
|
||||
`:Gblame` brings up an interactive vertical split with `git blame`
|
||||
output. Press enter on a line to edit the commit where the line
|
||||
@@ -35,9 +35,15 @@ and you never get any warnings about the file changing outside Vim.
|
||||
making it like `git add` when called from a work tree file and like
|
||||
`git checkout` when called from the index or a blob in history.
|
||||
|
||||
Use `:Gbrowse` to open the current file on GitHub, with optional line
|
||||
range (try it in visual mode!). If your current repository isn't on
|
||||
GitHub, `git instaweb` will be spun up instead.
|
||||
Use `:Gbrowse` to open the current file on the web front-end of your favorite
|
||||
hosting provider, with optional line range (try it in visual mode!). Built-in
|
||||
support is provided for `git instaweb`, and plugins are available for popular
|
||||
providers such as [GitHub][rhubarb.vim], [GitLab][fugitive-gitlab.vim], and
|
||||
[Bitbucket][fubitive.vim].
|
||||
|
||||
[rhubarb.vim]: https://github.com/tpope/vim-rhubarb
|
||||
[fugitive-gitlab.vim]: https://github.com/shumphrey/fugitive-gitlab.vim
|
||||
[fubitive.vim]: https://github.com/tommcdo/vim-fubitive
|
||||
|
||||
Add `%{fugitive#statusline()}` to `'statusline'` to get an indicator
|
||||
with the current branch in (surprise!) your statusline.
|
||||
@@ -55,15 +61,13 @@ and `Git!` to open the output of a command in a temp file.
|
||||
|
||||
## Installation
|
||||
|
||||
If you don't have a preferred installation method, I recommend
|
||||
installing [pathogen.vim](https://github.com/tpope/vim-pathogen), and
|
||||
then simply copy and paste:
|
||||
If you don't have a preferred installation method, one option is to install
|
||||
[pathogen.vim](https://github.com/tpope/vim-pathogen), and then copy
|
||||
and paste:
|
||||
|
||||
cd ~/.vim/bundle
|
||||
git clone git://github.com/tpope/vim-fugitive.git
|
||||
|
||||
Once help tags have been generated, you can view the manual with
|
||||
`:help fugitive`.
|
||||
vim -u NONE -c "helptags vim-fugitive/doc" -c q
|
||||
|
||||
If your Vim version is below 7.2, I recommend also installing
|
||||
[vim-git](https://github.com/tpope/vim-git) for syntax highlighting and
|
||||
|
||||
+64
-27
@@ -57,24 +57,48 @@ that are part of Git repositories).
|
||||
q close status
|
||||
r reload status
|
||||
S |:Gvsplit|
|
||||
U |:Git| checkout
|
||||
U |:Git| checkout HEAD (staged files)
|
||||
U |:Git| clean (untracked files)
|
||||
U |:Git| rm (unmerged files)
|
||||
|
||||
*fugitive-:Gcommit*
|
||||
:Gcommit [args] A wrapper around git-commit. If there is nothing
|
||||
to commit, |:Gstatus| is called instead. Unless the
|
||||
arguments given would skip the invocation of an editor
|
||||
(e.g., -m), a split window will be used to obtain a
|
||||
commit message. Write and close that window (:wq or
|
||||
|:Gwrite|) to finish the commit. Unlike when running
|
||||
the actual git-commit command, it is possible (but
|
||||
unadvisable) to muck with the index with commands like
|
||||
git-add and git-reset while a commit message is
|
||||
pending.
|
||||
commit message, or a new tab if -v is given. Write
|
||||
and close that window (:wq or |:Gwrite|) to finish the
|
||||
commit. Unlike when running the actual git-commit
|
||||
command, it is possible (but unadvisable) to alter the
|
||||
index with commands like git-add and git-reset while a
|
||||
commit message is pending.
|
||||
|
||||
*fugitive-:Gmerge*
|
||||
:Gmerge [args] Calls git-merge and loads errors and conflicted files
|
||||
into the quickfix list. Opens a |:Gcommit| style
|
||||
split window for the commit message if the merge
|
||||
succeeds. If called during a merge conflict, the
|
||||
conflicted files from the current index are loaded
|
||||
into the quickfix list.
|
||||
|
||||
*fugitive-:Gpull*
|
||||
:Gpull [args] Like |:Gmerge|, but for git-pull.
|
||||
|
||||
*fugitive-:Gpush*
|
||||
:Gpush [args] Invoke git-push, load the results into the quickfix
|
||||
list, and invoke |:cwindow| to reveal any errors.
|
||||
|:Dispatch| is used if available for asynchronous
|
||||
invocation.
|
||||
|
||||
*fugitive-:Gfetch*
|
||||
:Gfetch [args] Like |:Gpush|, but for git-fetch.
|
||||
|
||||
*fugitive-:Ggrep*
|
||||
:Ggrep [args] |:grep| with git-grep as 'grepprg'.
|
||||
:Ggrep[!] [args] |:grep|[!] with git-grep as 'grepprg'.
|
||||
|
||||
*fugitive-:Glgrep*
|
||||
:Glgrep [args] |:lgrep| with git-grep as 'grepprg'.
|
||||
:Glgrep[!] [args] |:lgrep|[!] with git-grep as 'grepprg'.
|
||||
|
||||
*fugitive-:Glog*
|
||||
:Glog [args] Load all previous revisions of the current file into
|
||||
@@ -84,6 +108,11 @@ that are part of Git repositories).
|
||||
previous commits rather than previous file revisions
|
||||
are loaded.
|
||||
|
||||
:{range}Glog [args] Use git-log -L to load previous revisions of the given
|
||||
range of the current file into the quickfix list. The
|
||||
cursor is positioned on the first line of the first
|
||||
diff hunk for each commit.
|
||||
|
||||
*fugitive-:Gllog*
|
||||
:Gllog [args] Like |:Glog|, but use the location list instead of the
|
||||
quickfix list.
|
||||
@@ -152,7 +181,9 @@ that are part of Git repositories).
|
||||
to the right or bottom, depending on 'diffopt' and
|
||||
the width of the window relative to 'textwidth'. Use
|
||||
|do| and |dp| and write to the index file to simulate
|
||||
"git add --patch".
|
||||
"git add --patch". For the three-way diff, there is
|
||||
also d2o and d3o pulling the hunk to the middle from
|
||||
the left or the right window, respectively.
|
||||
|
||||
*fugitive-:Gsdiff*
|
||||
:Gsdiff [revision] Like |:Gdiff|, but always split horizontally.
|
||||
@@ -195,32 +226,38 @@ that are part of Git repositories).
|
||||
:[range]Gblame [flags] Run git-blame on the given range.
|
||||
|
||||
*fugitive-:Gbrowse*
|
||||
:[range]Gbrowse If the remote for the current branch is on GitHub,
|
||||
open the current file, blob, tree, commit, or tag
|
||||
(with git-web--browse) on GitHub. Otherwise, open the
|
||||
current file, blob, tree, commit, or tag in
|
||||
git-instaweb (if you have issues, verify you can run
|
||||
"git instaweb" from a terminal). If a range is given,
|
||||
it is appropriately appended to the URL as an anchor.
|
||||
:Gbrowse Open the current file, blob, tree, commit, or tag
|
||||
in your browser at the upstream hosting provider.
|
||||
If a range is given, it is appropriately appended to
|
||||
the URL as an anchor.
|
||||
|
||||
To use with GitHub FI, point g:fugitive_github_domains
|
||||
at a list of domains:
|
||||
>
|
||||
let g:fugitive_github_domains = ['https://example.com']
|
||||
~
|
||||
:[range]Gbrowse! Like :Gbrowse, but put the URL on the clipboard rather
|
||||
than opening it.
|
||||
Upstream providers can be added by installing an
|
||||
appropriate Vim plugin. For example, GitHub can be
|
||||
supported by installing rhubarb.vim, available at
|
||||
<https://github.com/tpope/vim-rhubarb>.
|
||||
|
||||
:[range]Gbrowse {revision}
|
||||
Like :Gbrowse, but for a given |fugitive-revision|. A
|
||||
The hosting provider is determined by looking at the
|
||||
remote for the current or specified branch and falls
|
||||
back to "origin". In the special case of a "."
|
||||
remote, a local instance of git-instaweb will be
|
||||
started and used.
|
||||
|
||||
:Gbrowse {revision} Like :Gbrowse, but for a given |fugitive-revision|. A
|
||||
useful value here is -, which ties the URL to the
|
||||
latest commit rather than a volatile branch.
|
||||
|
||||
:[range]Gbrowse [...]@{remote}
|
||||
Force using the given remote rather than the remote
|
||||
:Gbrowse [...]@{remote} Force using the given remote rather than the remote
|
||||
for the current branch. The remote is used to
|
||||
determine which GitHub repository to link to.
|
||||
|
||||
:{range}Gbrowse [args] Appends an anchor to the URL that emphasizes the
|
||||
selected lines. You almost certainly want to give a
|
||||
"-" argument in this case to force the URL to include
|
||||
an exact revision.
|
||||
|
||||
:[range]Gbrowse! [args] Like :Gbrowse, but put the URL on the clipboard rather
|
||||
than opening it.
|
||||
|
||||
MAPPINGS *fugitive-mappings*
|
||||
|
||||
These maps are available everywhere.
|
||||
|
||||
+719
-270
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user