Help us understand the problem. What is going on with this article?

VimでGitの環境を整える

More than 1 year has passed since last update.

Vimを使っててGitのプラグインを探してて、色々まとめました。

※ 勘違いしていて全部gitgutterの機能だと思ってたんですけど、コメントでご指摘頂いて直しました:bow:

とりあえずインストール

インストールするものは以下のものです。

僕はdeinを使っているので、インストールはこんな感じです。

dein.toml
[[plugins]]
repo = "airblade/vim-gitgutter"

[[plugins]]
repo = "tpope/vim-fugitive"

vim-gitgutterの機能

HEADからの差分を表示

インストールが済んだらGitで管理しているページを開いてください。
ページを開いて、適当に変更して保存すると以下のように行数の横に+や−が表示出来ていると思います。

image.png

次の変更まで進みたいなら ]c、前の変更に戻りたいなら [cで移動することが出来ます。
ショートカットを変更したいなら以下のコードをvimrcに加えてください。

nmap ]h <Plug>GitGutterNextHunk
nmap [h <Plug>GitGutterPrevHunk

fugitiveの機能

Glog

これは git logのコマンドですね。
ノーマルモードで :Glogを実行すると以下のような表示が出ます。
::の後ろは今は消してますが、コミットメッセージが表示されます。
これは単体ではあまり使えませんが次の Gdiffと組み合わせるとこで効果を発揮します。

fugitive:///~/.git//8f3032e5b4b02063e299d8be805d1d81738dc3c4/pages/index.vue::...
fugitive:///~/.git//03a7ecbcbf7f244b9fa031ff67e737823fb18dfb/pages/index.vue::...
fugitive:///~/.git//fae312dd5ff77dbb0e8e974c978f0e803b41796a/pages/index.vue::...
fugitive:///~/.git//2eac7fb5084fe094f20ebd51bbac08649d6e4b08/pages/index.vue::...
fugitive:///~/.git//54e42bdc3acece96f77731180249f9c552c5b124/pages/index.vue::...
fugitive:///~/.git//65d924c0cee3a034cbe03ad2cdeb0d5472fbaf9a/pages/index.vue::...
fugitive:///~/.git//c71cf6d87d123fcc3a4e625f52c535adcf361c16/pages/index.vue::...
fugitive:///~/.git//add95331805cb415d81ce14cfc98d344834a9a01/pages/index.vue::...
fugitive:///~/.git//8067e36a079e9871522a58a64ee02da699874cb3/pages/index.vue::...
fugitive:///~/.git//9e6d8ba9bcfe36266e89cffefcecd8b02d33dd34/pages/index.vue::...
fugitive:///~/.git//f90276408d13eca8c15a4766fcc77514e04a2ea2/pages/index.vue::...

また、 :Glog --onelineとすることによって以下のような短いバージョンの結果を得ることも出来ます!

8f3032e ...
03a7ecb ...
fae312d ...
2eac7fb ...
54e42bd ...
65d924c ...
c71cf6d ...
add9533 ...
8067e36 ...
9e6d8ba ...
f902764 ...

Gdiff

これはgit diffのコマンドを行ってくれるコマンドです。
ノーマルモードで :Gdiffと実行すると以下のようにHEADの状態と現在の状態を比較することができます。
このコマンドを見ることで前の状態との変更を見ながらコーディング出来ます!

スクリーンショット 2018-07-09 13.06.15.png

また、HEADよりも前にさかのぼって確認したいときは Glogをつかって

:Gdiff コミット番号

のように書きます。コミット番号は上で言うと 8f3032e5b4b02063e299d8be805d1d81738dc3c4の部分です。

Gblame

このコマンドを実行すると以下のように誰によるいつどのコミットでの変更なのかを見ることが出来ます。
これは、複数人開発の時によくわからないコードがあった時に誰に聞けばいいかが分かるというとても便利な機能です!
下の画像では一人しかいませんが、、笑

スクリーンショット 2018-07-09 13.38.23.png

Gbrowse

正直僕が一番紹介したいと思ってたのはこの機能です。
GitHubなど複数人での作業で、GitHub上でやり取りをするならこの機能はすごく便利だと思います。
ただし、この機能はもしGitHubを使っている場合はvim-rhubarbが必要となります。

これはリポジトリがGitHubやGitlabなどにミラーされていることを推測し、現在のファイルをブラウザ内のオプションの行選択で開くことが出来ます。
開く方法は簡単でまず、Shift-Vで表示したい行を選択します。あとは :Gbrowseを入力し、開いたページのURLをGitHubのPull RequestやIssueに貼ると以下の画像のような結果が得られます。

スクリーンショット 2018-07-09 13.32.52.png

終わりに

他にも便利なGitの機能がありましたら、コメントなどで教えてください!

参考

15年目のVim

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした