MyEnigma

とある自律移動システムエンジニアのブログです。#Robotics #Programing #C++ #Python #MATLAB #Vim #Mathematics #Book #Movie #Traveling #Mac #iPhone

VimとGitの効率的なコラボレーションの仕方

目次

はじめに

gitは

最近のソフトウェア開発には必須だと思いますが、

VimとGitを上手く連携させて、

効率的にソフトウェアを

バージョン管理する方法をまとめたいと思います。

 

Gitのコンフリクトをvimdiffでマージする

セットアップ

git config --global merge.tool vimdiff

git config --global merge.conflictstyle diff3

git config --global mergetool.prompt false

参考資料

git連携用vimプラグイン: vim-fugitive

vim-fugitiveはVimとGitで調べると

一番最初に出てくるほど有名なVimプラグインです。

github.com

インストール

Neobundleを使っている場合、

これでOKです。

NeoBundle 'tpope/vim-fugitive'

 

Gstatusが凄く便利

vim-fugitiveをインストールして、

:Gstatus

とvimのコマンドを入力すると、

画面分割されてgit statusの画面が表示されます。

 

これだけでも非常に便利ですが、

git statusの画面で、

各ファイル名の行の上にカーソルを合わせて、

- (ハイフン)を押すと、

addとresetを切り替えることができます。

 

つまり、:Gstatusのstatus画面上で、

コミットするファイルを簡単に選び(add)、

あとは、status画面で C (大文字c) またはccを入力すれば

コミット画面が表示されるので

コミットメッセージを入力すればすぐにコミットできます。

 

また、同様に:Gstatusのファイル名の上で、

D (大文字d)を押すと、HEADとの差分が

vimdiffで表示されます。

またファイル名の上でEnterを押すと、

そのファイルをvimで開くことができます。

 

何かわけがわからなくなって、コミット時までソースを戻したい時

:Gread

と入力するとHEADまでコードを復元することができます。

色々修正したせいで

わけがわからなくなったときは便利です。

 

ブランチ名をvimのステータスラインの表示する

vim-fugitiveをインストールした状態で、

下記の設定をvimrcに追加すると、

vimのステータスラインに現在のブランチ名を表示することができます。

" Statuslineの設定
set laststatus=2
set statusline=%<%f\ %h%m%r%{fugitive#statusline()}%=%-14.(%l,%c%V%)\ \[ENC=%{&fileencoding}]%P 

編集しているファイルの

エンコーディングも表示しています。

 

ソースコードのGitHubページを一瞬でブラウザで開く

GitHub上で管理されているコードをいじっている時に、

そのファイルのGitHubページを見たい時は、

:Gbrowse

とvimでコマンドすると、自動的にブラウザが立ち上がり、

そのファイルのGitHubページが表示されます。

 

またビジュアルモードでコードを選んで、

:Gbrowse

するとそのコードをハイライトした状態で

GitHubのページを表示してくれます。

 

コミットする

先ほど説明したとおり、

:Gstatus上でC or ccでコミットできますが、

vimから直接コミットする場合は、

:Gcommit

でOKです。

 

pushする

pushは特にコマンドは無いみたいなので、

:Git push origin master 

といった感じでpushできます。

 

HEADとのdiffを表示する

:Gstatus上でもdiffできますが、

:Gdiff

でもdiffが表示できます。

 

参考資料

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

MyEnigma Supporters

もしこの記事が参考になり、

ブログをサポートしたいと思われた方は、

こちらからよろしくお願いします。

myenigma.hatenablog.com