git addで毎回ファイルパスをコピーするのが面倒!

これまでの課題

git add するときに毎回ファイルパスをコピーして、貼り付けるみたいな操作がかなり面倒。どうにかならないか?

対策1: "git add -i"を使用する

$ git status
On branch branchA
Changes not staged for commit:
    modified:   src/main.php

$ git add -i
           staged     unstaged path
  1:    unchanged        +1/-1 src/main.php

*** Commands ***(*1)
  1: status       2: update       3: revert       4: add untracked
  5: patch        6: diff         7: quit         8: help
What now> 2
           staged     unstaged path
  1:    unchanged        +1/-1 src/main.php

Update>> 1
           staged     unstaged path
* 1:    unchanged        +1/-1 src/main.php

Update>> # Enter
updated 1 path

*1 こちらを参考

1: 再度同じ画面(ステータス)
2: updateを指定すると、ファイルをステージングできるモードに入ります。
3:revertを指定すると、ステージングされたファイルをアンステージすることができます。
4:add untrackedで新規作成したファイルなどの未トラッキング状態のファイルをaddできます。
5:patchは2:updateと同じようにファイルのステージングを行います。 異なるのは、ハンクと呼ばれる一定行の単位で変更箇所を表示し、各ハンクについてステージングするかどうか訪ねてくる点です。

メリット:

  • Git本来の機能で実現できる
  • そこまで難しくない

デメリット:

  • アントラックのファイル用、変更ファイルなどコマンドで切り替えないとaddできない

対策2:tigを使用する

以下の記事参考 qiita.com

qiita.com

操作 ショートカット
git status S
git add u
git commit C

メリット:

  • リッチなビューを持っている(logやrefなど)
  • 慣れれば"git add -i"よりも爆速で操作できそう(直感)

デメリット:

  • 操作に慣れるのに少し時間がかかりそう

まとめ

個人的にはrefやlogの一覧が見れたり、add / resetが簡単にできるのでtigを使おうと思ってます!