mirror of
https://github.com/tpope/vim-fugitive.git
synced 2025-11-08 11:33:47 -05:00
Compare commits
342 Commits
nested/tes
...
v2.5
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2564c37d0a | ||
|
|
c316b924e8 | ||
|
|
7a190ead85 | ||
|
|
e48cf2dadd | ||
|
|
6d497b0e63 | ||
|
|
dcf32d2b3d | ||
|
|
0fd64f8fbf | ||
|
|
2845e6dc4f | ||
|
|
7fae98f263 | ||
|
|
a9100fafb8 | ||
|
|
9fec8aadc5 | ||
|
|
66697b99d6 | ||
|
|
fb55319973 | ||
|
|
02fe20ece4 | ||
|
|
6cd8ff77f0 | ||
|
|
af76267c6a | ||
|
|
144b73946e | ||
|
|
d4fb2a2f5c | ||
|
|
4bf30ce907 | ||
|
|
0fe0964385 | ||
|
|
8b4a1017b6 | ||
|
|
66e0fe5d3e | ||
|
|
61b09ca6b7 | ||
|
|
b3651aa744 | ||
|
|
fd83fcaf90 | ||
|
|
1e3786734b | ||
|
|
4d3835f637 | ||
|
|
44e5df8433 | ||
|
|
a202238b5d | ||
|
|
bb2797d313 | ||
|
|
67e9756c35 | ||
|
|
ae2005adbb | ||
|
|
ed36717a68 | ||
|
|
b1ab990314 | ||
|
|
2b5effe2f1 | ||
|
|
662b501eee | ||
|
|
7bdf33d375 | ||
|
|
e9dc363745 | ||
|
|
9979b2ab7c | ||
|
|
8589246545 | ||
|
|
7b0aa58090 | ||
|
|
45c21fc384 | ||
|
|
8dc13a6a72 | ||
|
|
0614acc770 | ||
|
|
1a7b07cf22 | ||
|
|
4a3c6b4a56 | ||
|
|
e3c9588e07 | ||
|
|
40facfde5e | ||
|
|
236bd21b45 | ||
|
|
e9ce313912 | ||
|
|
74b10425eb | ||
|
|
1a041936da | ||
|
|
a358191cfb | ||
|
|
597289e64d | ||
|
|
7ea21ca9ac | ||
|
|
2ca0765dc4 | ||
|
|
347d309efb | ||
|
|
6138aebbbb | ||
|
|
dd262b7e21 | ||
|
|
f91c34069e | ||
|
|
40e2dcba05 | ||
|
|
a3e9518186 | ||
|
|
8c63314381 | ||
|
|
12e0151750 | ||
|
|
887d86e920 | ||
|
|
73ed8e8a71 | ||
|
|
4bf7f2fd69 | ||
|
|
08d471056e | ||
|
|
969a3d857f | ||
|
|
06b3da7204 | ||
|
|
db3b837e6e | ||
|
|
b780bce39b | ||
|
|
a615172b14 | ||
|
|
caee67c748 | ||
|
|
1fea1e5821 | ||
|
|
80e410c81a | ||
|
|
84fcfae7f0 | ||
|
|
4d684256ba | ||
|
|
0e948d514c | ||
|
|
4eee908ad5 | ||
|
|
c1d2fc1a19 | ||
|
|
c85980cd93 | ||
|
|
81deb6333a | ||
|
|
85f340590d | ||
|
|
fc8f9eda9d | ||
|
|
c82abd0558 | ||
|
|
d859e05f00 | ||
|
|
3feda7f440 | ||
|
|
c9c406a118 | ||
|
|
a877908acd | ||
|
|
6c89a3675b | ||
|
|
bf796562b6 | ||
|
|
023ab8e4a6 | ||
|
|
da95d96ece | ||
|
|
8a0a448f56 | ||
|
|
004da420e5 | ||
|
|
8b4194047c | ||
|
|
716edd4bc0 | ||
|
|
70c0f132f5 | ||
|
|
a8392e0ebb | ||
|
|
64fbfc7a8d | ||
|
|
f232e4c6a3 | ||
|
|
db7fd110a8 | ||
|
|
248764f2c3 | ||
|
|
f8fb5eafab | ||
|
|
4f82d241cc | ||
|
|
f761ea700c | ||
|
|
035cdf44e8 | ||
|
|
deaf4aa139 | ||
|
|
da066426fd | ||
|
|
4643363b08 | ||
|
|
c5d4ce7479 | ||
|
|
6eadff1107 | ||
|
|
c68fb3c83a | ||
|
|
6c09ce3ab4 | ||
|
|
cec05fac01 | ||
|
|
4b0475f9d8 | ||
|
|
8edc9cd006 | ||
|
|
382c0a5405 | ||
|
|
c472b8f2c1 | ||
|
|
30c2490b6e | ||
|
|
5a9b7a593b | ||
|
|
4ce8646410 | ||
|
|
321f63ff19 | ||
|
|
7f299fbbe3 | ||
|
|
6d0df81732 | ||
|
|
5cea916e9c | ||
|
|
c3c39d904b | ||
|
|
6bab1a0c39 | ||
|
|
49c2a4acb5 | ||
|
|
73c39195ae | ||
|
|
f818a947ae | ||
|
|
fbaa831e57 | ||
|
|
07d30de8be | ||
|
|
c693da9cb0 | ||
|
|
1e7e707696 | ||
|
|
d818ac93af | ||
|
|
2fcf95467f | ||
|
|
286476d58f | ||
|
|
b78a8ab860 | ||
|
|
e6e3f3f225 | ||
|
|
240127f5a5 | ||
|
|
bfc1745f3b | ||
|
|
93f29cf831 | ||
|
|
5879304769 | ||
|
|
196e448375 | ||
|
|
e0b770a9bd | ||
|
|
c938737960 | ||
|
|
978ca4a5ce | ||
|
|
a8626a4ca4 | ||
|
|
4a5781bc1b | ||
|
|
71acb7da35 | ||
|
|
1e41a88ec9 | ||
|
|
9e7b67e9b0 | ||
|
|
445a8160d2 | ||
|
|
cb49f8b4be | ||
|
|
6aa3f09eb7 | ||
|
|
197ca58a95 | ||
|
|
7165817b69 | ||
|
|
be68a8ec8a | ||
|
|
b8046d1c5e | ||
|
|
b7e57637ba | ||
|
|
35f94eef48 | ||
|
|
c118dabb89 | ||
|
|
8c076e3f68 | ||
|
|
0aa3389f5c | ||
|
|
fb2289982b | ||
|
|
56e4947843 | ||
|
|
99f0431135 | ||
|
|
29411e2801 | ||
|
|
c0b6faeae7 | ||
|
|
792154e45d | ||
|
|
0717396aa2 | ||
|
|
9b9a81b170 | ||
|
|
598ad040b3 | ||
|
|
805c0bbdd9 | ||
|
|
1971f8fd62 | ||
|
|
5ba918ea7b | ||
|
|
27475a5d08 | ||
|
|
e3b1af604c | ||
|
|
c9d6c83470 | ||
|
|
8df073165a | ||
|
|
9bc425e943 | ||
|
|
65346f0926 | ||
|
|
5a7469d899 | ||
|
|
6f07b18012 | ||
|
|
302f30c924 | ||
|
|
7316baffdd | ||
|
|
85c6c7a837 | ||
|
|
6f9fa8a4b1 | ||
|
|
65a53b5f5c | ||
|
|
0a75ec5d9b | ||
|
|
80ff014d21 | ||
|
|
b5f7c37d93 | ||
|
|
6d2a83232a | ||
|
|
ea38c7d664 | ||
|
|
2c30e116ed | ||
|
|
1988518904 | ||
|
|
2a817bb53a | ||
|
|
38c69cfebc | ||
|
|
70a36ceef8 | ||
|
|
f71079db4d | ||
|
|
cbf96cc01a | ||
|
|
8fa5cad8d7 | ||
|
|
251853bc1e | ||
|
|
639b9f9a54 | ||
|
|
13f39967f4 | ||
|
|
d39d5ca429 | ||
|
|
bb54881388 | ||
|
|
f7bcf51c56 | ||
|
|
cc9d8d93c8 | ||
|
|
b571bff9ec | ||
|
|
5c2095be39 | ||
|
|
5d11ff7501 | ||
|
|
dd4d4c7595 | ||
|
|
013ee636f5 | ||
|
|
ddec4bfa86 | ||
|
|
f8913cda12 | ||
|
|
68e097db6f | ||
|
|
d850dff16e | ||
|
|
8977570aa6 | ||
|
|
caf89d797f | ||
|
|
c8b1a7d9b6 | ||
|
|
0e2680f9ae | ||
|
|
8c43505037 | ||
|
|
fecd42864a | ||
|
|
01e7a7e1e6 | ||
|
|
b129752c07 | ||
|
|
aa0210a986 | ||
|
|
d7c377f3ba | ||
|
|
cde670ee81 | ||
|
|
26433842e9 | ||
|
|
eeaadf7255 | ||
|
|
65be0ae749 | ||
|
|
6faf165ef2 | ||
|
|
614e20bb65 | ||
|
|
33b7c1a5b7 | ||
|
|
2a4714335f | ||
|
|
994d781f90 | ||
|
|
a5a75aca92 | ||
|
|
0078c76106 | ||
|
|
e0fa72363a | ||
|
|
a22adef4e0 | ||
|
|
b14434bae0 | ||
|
|
5c2eccd55d | ||
|
|
b1df5f1226 | ||
|
|
b34083549e | ||
|
|
dcecb762b0 | ||
|
|
fa1b8652f1 | ||
|
|
40d78f07de | ||
|
|
63a80f4bfe | ||
|
|
3bdac8b603 | ||
|
|
d87ad99e28 | ||
|
|
b680699450 | ||
|
|
3ac95c4dde | ||
|
|
409b098c93 | ||
|
|
3e0bd86b99 | ||
|
|
9268cb4ea4 | ||
|
|
b82abd5bd5 | ||
|
|
f3ccb0c12e | ||
|
|
5032d9ee72 | ||
|
|
de6c05720c | ||
|
|
d16cd9ced1 | ||
|
|
7c9b87a3c3 | ||
|
|
42daa3183b | ||
|
|
8f60d1d459 | ||
|
|
913fff1cea | ||
|
|
be2ff98db5 | ||
|
|
280bbdb6eb | ||
|
|
366996484e | ||
|
|
7be1f0aef6 | ||
|
|
7195586b79 | ||
|
|
be770419fc | ||
|
|
0648abc018 | ||
|
|
e272080f0d | ||
|
|
2c8d15a790 | ||
|
|
d6e7e20123 | ||
|
|
1d2f150331 | ||
|
|
e5935c1165 | ||
|
|
7ebe5c143d | ||
|
|
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 |
2
.gitattributes
vendored
Normal file
2
.gitattributes
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
.git* export-ignore
|
||||
*.markdown export-ignore
|
||||
@@ -8,8 +8,14 @@ platform issues, and interactions with other plugins. I end up bisecting a
|
||||
lot more than other projects, and thus I'm especially meticulous here about
|
||||
maintaining a clean, readable, history. Squash and force push any requested
|
||||
changes to a pull request. And if your [commit message
|
||||
sucks](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html),
|
||||
I'm not going to accept it. Period.
|
||||
sucks](https://commit.style), I'm not going to accept it. Period.
|
||||
|
||||
If your contribution involves adding a configuration option, you are going to
|
||||
need a very compelling justification for it. Options add a maintenance
|
||||
burden, support burden, and documentation bloat, and oftentimes can be
|
||||
achieved much more simply with a custom map or autocommand. If your option
|
||||
controls an underlying Git command, ask yourself why Git itself does not offer
|
||||
such configuration.
|
||||
|
||||
Beyond that, don't be shy about asking before patching. What takes you hours
|
||||
might take me minutes simply because I have both domain knowledge and a
|
||||
|
||||
@@ -11,8 +11,9 @@ 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`. And guess
|
||||
what `:Gcommit` does!
|
||||
`add`/`reset` a file's changes, or `p` to `add`/`reset` `--patch`. Use
|
||||
`:Gcommit %` to commit the current file, editing the commit message inside
|
||||
the currently running Vim.
|
||||
|
||||
`:Gblame` brings up an interactive vertical split with `git blame`
|
||||
output. Press enter on a line to edit the commit where the line
|
||||
@@ -20,7 +21,7 @@ changed, or `o` to open it in a split. When you're done, use `:Gedit`
|
||||
in the historic buffer to go back to the work tree version.
|
||||
|
||||
`:Gmove` does a `git mv` on a file and simultaneously renames the
|
||||
buffer. `:Gremove` does a `git rm` on a file and simultaneously deletes
|
||||
buffer. `:Gdelete` does a `git rm` on a file and simultaneously deletes
|
||||
the buffer.
|
||||
|
||||
Use `:Ggrep` to search the work tree (or any arbitrary commit) with
|
||||
@@ -35,11 +36,16 @@ 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!). Plugins
|
||||
are available for popular providers such as [GitHub][rhubarb.vim],
|
||||
[GitLab][fugitive-gitlab.vim], and [Bitbucket][fubitive.vim].
|
||||
|
||||
Add `%{fugitive#statusline()}` to `'statusline'` to get an indicator
|
||||
[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 `%{FugitiveStatusline()}` to `'statusline'` to get an indicator
|
||||
with the current branch in (surprise!) your statusline.
|
||||
|
||||
Last but not least, there's `:Git` for running any arbitrary command,
|
||||
@@ -60,7 +66,7 @@ If you don't have a preferred installation method, one option is to install
|
||||
and paste:
|
||||
|
||||
cd ~/.vim/bundle
|
||||
git clone git://github.com/tpope/vim-fugitive.git
|
||||
git clone https://github.com/tpope/vim-fugitive.git
|
||||
vim -u NONE -c "helptags vim-fugitive/doc" -c q
|
||||
|
||||
If your Vim version is below 7.2, I recommend also installing
|
||||
@@ -69,24 +75,11 @@ other Git niceties.
|
||||
|
||||
## FAQ
|
||||
|
||||
> I installed the plugin and started Vim. Why don't any of the commands
|
||||
> exist?
|
||||
> Why don't any of the commands exist?
|
||||
|
||||
Fugitive cares about the current file, not the current working
|
||||
directory. Edit a file from the repository.
|
||||
|
||||
> I opened a new tab. Why don't any of the commands exist?
|
||||
|
||||
Fugitive cares about the current file, not the current working
|
||||
directory. Edit a file from the repository.
|
||||
|
||||
> Why is `:Gbrowse` not using the right browser?
|
||||
|
||||
`:Gbrowse` delegates to `git web--browse`, which is less than perfect
|
||||
when it comes to finding the right browser. You can tell it the correct
|
||||
browser to use with `git config --global web.browser ...`. On OS X, for
|
||||
example, you might want to set this to `open`. See `git web--browse --help`
|
||||
for details.
|
||||
Fugitive cares about the current file, not the current working directory.
|
||||
Edit a file from the repository. To avoid the blank window problem, favor
|
||||
commands like `:split` and `:tabedit` over commands like `:new` and `:tabnew`.
|
||||
|
||||
> Here's a patch that automatically opens the quickfix window after
|
||||
> `:Ggrep`.
|
||||
|
||||
3880
autoload/fugitive.vim
Normal file
3880
autoload/fugitive.vim
Normal file
File diff suppressed because it is too large
Load Diff
205
doc/fugitive.txt
205
doc/fugitive.txt
@@ -40,10 +40,12 @@ that are part of Git repositories).
|
||||
<CR> |:Gedit|
|
||||
- |:Git| add
|
||||
- |:Git| reset (staged files)
|
||||
cA |:Gcommit| --amend --reuse-message=HEAD
|
||||
a Show alternative format
|
||||
ca |:Gcommit| --amend
|
||||
cc |:Gcommit|
|
||||
cva |:Gcommit| --amend --verbose
|
||||
ce |:Gcommit| --amend --no-edit
|
||||
cw |:Gcommit| --amend --only
|
||||
cva |:Gcommit| --verbose --amend
|
||||
cvc |:Gcommit| --verbose
|
||||
D |:Gdiff|
|
||||
ds |:Gsdiff|
|
||||
@@ -52,11 +54,16 @@ that are part of Git repositories).
|
||||
dv |:Gvdiff|
|
||||
O |:Gtabedit|
|
||||
o |:Gsplit|
|
||||
p |:Git| add --patch
|
||||
p |:Git| reset --patch (staged files)
|
||||
P |:Git| add --patch
|
||||
P |:Git| reset --patch (staged files)
|
||||
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)
|
||||
. enter |:| command line with file prepopulated
|
||||
|
||||
*fugitive-:Gcommit*
|
||||
:Gcommit [args] A wrapper around git-commit. If there is nothing
|
||||
@@ -72,17 +79,21 @@ that are part of Git repositories).
|
||||
|
||||
*fugitive-:Gmerge*
|
||||
:Gmerge [args] Calls git-merge and loads errors and conflicted files
|
||||
into the quickfix list. Opens a |:Gcommit| style
|
||||
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.
|
||||
into the |quickfix| list.
|
||||
|
||||
*fugitive-:Gpull*
|
||||
:Gpull [args] Like |:Gmerge|, but for git-pull.
|
||||
|
||||
*fugitive-:Grebase*
|
||||
:Grebase [args] Like |:Gmerge|, but for git-rebase. Interactive
|
||||
rebase not supported.
|
||||
|
||||
*fugitive-:Gpush*
|
||||
:Gpush [args] Invoke git-push, load the results into the quickfix
|
||||
: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.
|
||||
@@ -91,42 +102,42 @@ that are part of Git repositories).
|
||||
: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
|
||||
the quickfix list. Additional git-log arguments can
|
||||
the |quickfix| list. Additional git-log arguments can
|
||||
be given (for example, --reverse). If "--" appears as
|
||||
an argument, no file specific filtering is done, and
|
||||
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.
|
||||
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.
|
||||
|quickfix| list.
|
||||
|
||||
*fugitive-:Gedit* *fugitive-:Ge*
|
||||
:Gedit [revision] |:edit| a |fugitive-revision|.
|
||||
:Gedit [object] |:edit| a |fugitive-object|.
|
||||
|
||||
*fugitive-:Gsplit*
|
||||
:Gsplit [revision] |:split| a |fugitive-revision|.
|
||||
:Gsplit [object] |:split| a |fugitive-object|.
|
||||
|
||||
*fugitive-:Gvsplit*
|
||||
:Gvsplit [revision] |:vsplit| a |fugitive-revision|.
|
||||
:Gvsplit [object] |:vsplit| a |fugitive-object|.
|
||||
|
||||
*fugitive-:Gtabedit*
|
||||
:Gtabedit [revision] |:tabedit| a |fugitive-revision|.
|
||||
:Gtabedit [object] |:tabedit| a |fugitive-object|.
|
||||
|
||||
*fugitive-:Gpedit*
|
||||
:Gpedit [revision] |:pedit| a |fugitive-revision|.
|
||||
:Gpedit [object] |:pedit| a |fugitive-object|.
|
||||
|
||||
:Gsplit! [args] *fugitive-:Gsplit!* *fugitive-:Gvsplit!*
|
||||
:Gvsplit! [args] *fugitive-:Gtabedit!* *fugitive-:Gpedit!*
|
||||
@@ -134,13 +145,12 @@ that are part of Git repositories).
|
||||
:Gpedit! [args] split, tab, or preview window.
|
||||
|
||||
*fugitive-:Gread*
|
||||
:Gread [revision] Empty the buffer and |:read| a |fugitive-revision|.
|
||||
:Gread [object] Empty the buffer and |:read| a |fugitive-object|.
|
||||
When the argument is omitted, this is similar to
|
||||
git-checkout on a work tree file or git-add on a stage
|
||||
file, but without writing anything to disk.
|
||||
|
||||
:{range}Gread [revision]
|
||||
|:read| in a |fugitive-revision| after {range}.
|
||||
:{range}Gread [object] |:read| in a |fugitive-object| after {range}.
|
||||
|
||||
*fugitive-:Gread!*
|
||||
:Gread! [args] Empty the buffer and |:read| the output of a Git
|
||||
@@ -169,34 +179,42 @@ that are part of Git repositories).
|
||||
succeeded.
|
||||
|
||||
*fugitive-:Gdiff*
|
||||
:Gdiff [revision] Perform a |vimdiff| against the current file in the
|
||||
given revision. With no argument, the version in the
|
||||
index is used (which means a three-way diff during a
|
||||
merge conflict, making it a git-mergetool
|
||||
alternative). The newer of the two files is placed
|
||||
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".
|
||||
:Gdiff [object] Perform a |vimdiff| against the given file, or if a
|
||||
commit is given, the current file in that commit.
|
||||
With no argument, the version in the index is used
|
||||
(which means a three-way diff during a merge conflict,
|
||||
making it a git-mergetool alternative). The newer of
|
||||
the two files is placed 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". 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.
|
||||
:Gsdiff [object] Like |:Gdiff|, but always split horizontally.
|
||||
|
||||
*fugitive-:Gvdiff*
|
||||
:Gvdiff [revision] Like |:Gdiff|, but always split vertically.
|
||||
:Gvdiff [object] Like |:Gdiff|, but always split vertically.
|
||||
|
||||
*fugitive-:Gmove*
|
||||
:Gmove {destination} Wrapper around git-mv that renames the buffer
|
||||
afterward. The destination is relative to the current
|
||||
directory except when started with a /, in which case
|
||||
it is relative to the work tree. Add a ! to pass -f.
|
||||
afterward. Add a ! to pass -f.
|
||||
|
||||
*fugitive-:Gremove*
|
||||
:Gremove Wrapper around git-rm that deletes the buffer
|
||||
*fugitive-:Grename*
|
||||
:Grename {destination} Like |:Gmove| but operates relative to the parent
|
||||
directory of the current file.
|
||||
|
||||
*fugitive-:Gdelete*
|
||||
:Gdelete Wrapper around git-rm that deletes the buffer
|
||||
afterward. When invoked in an index file, --cached is
|
||||
passed. Add a ! to pass -f and forcefully discard the
|
||||
buffer.
|
||||
|
||||
*fugitive-:Gremove*
|
||||
:Gremove Like :Gdelete, but keep the (now empty) buffer around.
|
||||
|
||||
*fugitive-:Gblame*
|
||||
:Gblame [flags] Run git-blame on the file and open the results in a
|
||||
scroll bound vertical split. You can give any of
|
||||
@@ -213,41 +231,33 @@ that are part of Git repositories).
|
||||
<CR> q, then open commit
|
||||
o open commit in horizontal split
|
||||
O open commit in new tab
|
||||
p open commit in preview window
|
||||
- reblame at commit
|
||||
~ reblame at [count]th first grandparent
|
||||
P reblame at [count]th parent (like HEAD^[count])
|
||||
|
||||
:[range]Gblame [flags] Run git-blame on the given range.
|
||||
|
||||
*fugitive-:Gbrowse*
|
||||
:Gbrowse Open the current file, blob, tree, commit, or tag
|
||||
in your browser at the upstream hosting provider
|
||||
indicated by the "origin" remote. If a range is
|
||||
given, it is appropriately appended to the URL as an
|
||||
anchor.
|
||||
in your browser at the upstream hosting provider.
|
||||
If a range is given, it is appropriately appended to
|
||||
the URL as an anchor.
|
||||
|
||||
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>. (Native
|
||||
support for GitHub is currently included, but that is
|
||||
slated to be removed.)
|
||||
<https://github.com/tpope/vim-rhubarb>.
|
||||
|
||||
If no upstream support is available, a local instance
|
||||
of git-instaweb will be started and used instead.
|
||||
|
||||
: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.
|
||||
:Gbrowse {object} Like :Gbrowse, but for a given |fugitive-object|.
|
||||
|
||||
: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.
|
||||
determine which upstream 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.
|
||||
selected lines. This also forces the URL to include a
|
||||
commit rather than a branch name so it remains valid
|
||||
if the file changes. You can give a range of "0" to
|
||||
force this behavior without including an anchor.
|
||||
|
||||
:[range]Gbrowse! [args] Like :Gbrowse, but put the URL on the clipboard rather
|
||||
than opening it.
|
||||
@@ -258,26 +268,29 @@ These maps are available everywhere.
|
||||
|
||||
*fugitive-c_CTRL-R_CTRL-G*
|
||||
<C-R><C-G> On the command line, recall the path to the current
|
||||
object (that is, a representation of the object
|
||||
recognized by |:Gedit|).
|
||||
|fugitive-object| (that is, a representation of the
|
||||
object recognized by |:Gedit|).
|
||||
|
||||
*fugitive-y_CTRL-G*
|
||||
["x]y<C-G> Yank the commit SHA and path to the current object.
|
||||
["x]y<C-G> Yank the commit SHA and path to the current
|
||||
|fugitive-object|.
|
||||
|
||||
These maps are available in Git objects.
|
||||
These maps are available in committed Git objects.
|
||||
|
||||
*fugitive-<CR>*
|
||||
<CR> Jump to the revision under the cursor.
|
||||
<CR> Jump to the |fugitive-object| under the cursor.
|
||||
|
||||
*fugitive-o*
|
||||
o Jump to the revision under the cursor in a new split.
|
||||
o Jump to the |fugitive-object| under the cursor in a
|
||||
new split.
|
||||
|
||||
*fugitive-S*
|
||||
S Jump to the revision under the cursor in a new
|
||||
vertical split.
|
||||
S Jump to the |fugitive-object| under the cursor in a
|
||||
new vertical split.
|
||||
|
||||
*fugitive-O*
|
||||
O Jump to the revision under the cursor in a new tab.
|
||||
O Jump to the |fugitive-object| under the cursor in a
|
||||
new tab.
|
||||
|
||||
*fugitive--*
|
||||
- Go to the tree containing the current tree or blob.
|
||||
@@ -292,53 +305,51 @@ P Go to the current file in the [count]th parent.
|
||||
*fugitive-C*
|
||||
C Go to the commit containing the current file.
|
||||
|
||||
*fugitive-.*
|
||||
. Start a |:| command line with the current revision
|
||||
prepopulated at the end of the line.
|
||||
|
||||
*fugitive-a*
|
||||
a Show the current tag, commit, or tree in an alternate
|
||||
format.
|
||||
|
||||
SPECIFYING REVISIONS *fugitive-revision*
|
||||
SPECIFYING OBJECTS *fugitive-object* *fugitive-revision*
|
||||
|
||||
Fugitive revisions are similar to Git revisions as defined in the "SPECIFYING
|
||||
REVISIONS" section in the git-rev-parse man page. For commands that accept an
|
||||
optional revision, the default is the file in the index for work tree files
|
||||
and the work tree file for everything else. Example revisions follow.
|
||||
Fugitive objects are either work tree files or Git revisions as defined in the
|
||||
"SPECIFYING REVISIONS" section in the git-rev-parse man page, with expansions
|
||||
inspired by |cmdline-special| layered on top. For commands that accept an
|
||||
optional object, the default is the file in the index for work tree files and
|
||||
the work tree file for everything else. Example objects follow.
|
||||
|
||||
Revision Meaning ~
|
||||
Object Meaning ~
|
||||
HEAD .git/HEAD
|
||||
master .git/refs/heads/master
|
||||
HEAD^{} The commit referenced by HEAD
|
||||
HEAD^ The parent of the commit referenced by HEAD
|
||||
HEAD: The tree referenced by HEAD
|
||||
/HEAD The file named HEAD in the work tree
|
||||
refs/heads/x .git/refs/heads/x (in "common dir" if present)
|
||||
@ The commit referenced by @ aka HEAD
|
||||
master^ The parent of the commit referenced by master
|
||||
master: The tree referenced by master
|
||||
./master The file named master in the working directory
|
||||
Makefile The file named Makefile in the work tree
|
||||
HEAD^:Makefile The file named Makefile in the parent of HEAD
|
||||
@^:Makefile The file named Makefile in the parent of HEAD
|
||||
:Makefile The file named Makefile in the index (writable)
|
||||
- The current file in HEAD
|
||||
^ The current file in the previous commit
|
||||
~3 The current file 3 commits ago
|
||||
: .git/index (Same as |:Gstatus|)
|
||||
:0 The current file in the index
|
||||
:1 The current file's common ancestor during a conflict
|
||||
:2 The current file in the target branch during a conflict
|
||||
:3 The current file in the merged branch during a conflict
|
||||
:/foo The most recent commit with "foo" in the message
|
||||
@~2:% The current file in the grandparent of HEAD
|
||||
:% The current file in the index
|
||||
:1:% The current file's common ancestor during a conflict
|
||||
:2:# The alternate file in the target branch during a conflict
|
||||
:3:#5 The file from buffer #5 in the merged branch during a conflict
|
||||
! The commit owning the current file
|
||||
!:Makefile The file named Makefile in the commit owning the current file
|
||||
!3^2 The second parent of the commit owning buffer #3
|
||||
.git/config The repo config file
|
||||
: Same as |:Gstatus|
|
||||
|
||||
STATUSLINE *fugitive-statusline*
|
||||
|
||||
*fugitive#statusline()*
|
||||
Add %{fugitive#statusline()} to your statusline to get an indicator including
|
||||
*FugitiveStatusline()* *fugitive#statusline()*
|
||||
Add %{FugitiveStatusline()} to your statusline to get an indicator including
|
||||
the current branch and the currently edited file's commit. If you don't have
|
||||
a statusline, this one matches the default when 'ruler' is set:
|
||||
>
|
||||
set statusline=%<%f\ %h%m%r%{fugitive#statusline()}%=%-14.(%l,%c%V%)\ %P
|
||||
set statusline=%<%f\ %h%m%r%{FugitiveStatusline()}%=%-14.(%l,%c%V%)\ %P
|
||||
<
|
||||
*fugitive#head(...)*
|
||||
Use fugitive#head() to return the name of the current branch. If the current
|
||||
HEAD is detached, fugitive#head() will return the empty string, unless the
|
||||
*FugitiveHead(...)* *fugitive#head(...)*
|
||||
Use FugitiveHead() to return the name of the current branch. If the current
|
||||
HEAD is detached, FugitiveHead() will return the empty string, unless the
|
||||
optional argument is given, in which case the hash of the current commit will
|
||||
be truncated to the given number of characters.
|
||||
|
||||
|
||||
1
ftdetect/fugitive.vim
Normal file
1
ftdetect/fugitive.vim
Normal file
@@ -0,0 +1 @@
|
||||
autocmd BufReadPost *.fugitiveblame setfiletype fugitiveblame
|
||||
3147
plugin/fugitive.vim
3147
plugin/fugitive.vim
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user