差分を簡単に抽出
目的
今回もエディタをvim前提で記載します。
まずは普通の差分
1 | vim ./hoge.html |
次に開いたhoge.htmlに対して差分を取りたいファイルを以下のコマンドで開きます
1 | :vertical diffsplit ./fuga.html |
最初のコロンはvimでコマンドを実行する際のおまじない。
verticalは差分を左右で表示する宣言。これをしないと上下にデフォルトで開きます。
diffsplit これが差分を出すためのコマンド。
後から開いた方が左側に表示されます。
fuga.html ではインデント整形と一部文言の修正を行いました。
インデントした部分はスペースの数も差分として出ちゃっています。
スペースや改行の差分を無視したい時は以下のコマンドを実行
1 | :set diffopt=filler,icase,iwhite |
icase: 大文字小文字の判断無視
filler: 2つのテキストを自動スクロール
iwhite: スペースの数の差分を無視
左右を入れ替えたい時はCtrl+w xで。
便利なショートカットは以下参照。
Ctrl+w w : アクティブなテキストの移動
Ctrl+w x : テキスト表示位置(左右・上下)の入れ替え
[c : 今のカーソル位置から次の差分へジャンプ
]c : 今のカーソル位置から前の差分へジャンプ
dp : アクティブなテキストからもう片方へ差分を反映させる
do : もう片方のテキストからアクティブなテキストへ差分を反映させる
メインとなる機能は “dp”, “do” です。
欲しい差分だけを片方に反映させるのがポイントです。
差分が命のgitでも
“vim-fugitive”
と言うプラグインを使います
vimの設定ファイル ~/.vimrc に以下の行を追加後、vimを再起動するだけ。
1 | NeoBundle 'tpope/vim-fugitive' |
前述のdiffsplitの代わりに “Gdiff” を使用するだけの違いです。
必要な修正以外をしてしまった時も巻き戻しが容易。
1 2 3 | vim hoge.html // 最新の状態から編集する :Gdiff |
ブランチ間での同ファイル差分も簡単に確認出来ます。
おまけ
1 | :Gblame |
これで更新履歴を「いつ」「だれが」「どこを」修正したか解ります。
差分ライフを楽しんでください。
Author Profile
スターフィールド編集部
SHARE