mzgkworks

iOSを中心にプログラミング関係について書く

【Git】git addでステージングするファイルを対話的に選ぶ

git add でファイルをステージングする際に、ファイル名を指定するのが面倒。
かといって、一気にすべてをステージングしたくない。
そんなときの方法。

対話的にファイルを選ぶ

git add -i オプションを使用する。
こんな感じに *** Commands *** で、なにをしたいかを聞いてくる。

$ git add -i
           staged     unstaged path
  1:    unchanged        +8/-2 sampleBrowser/AppDelegate.m
  2:    unchanged       +36/-3 sampleBrowser/Base.lproj/Main.storyboard
  3:    unchanged       +21/-0 sampleBrowser/ViewController.m

*** Commands ***
  1: status   2: update   3: revert   4: add untracked
  5: patch    6: diff     7: quit     8: help
What now>

操作の選択

ここでステージングしたい場合は、Commandsからupdateの2 または u を入力する。

What now> 2

すると、どのファイルに対しての操作かを聞いてくる。

           staged     unstaged path
  1:    unchanged        +8/-2 sampleBrowser/AppDelegate.m
  2:    unchanged       +36/-3 sampleBrowser/Base.lproj/Main.storyboard
  3:    unchanged       +21/-0 sampleBrowser/ViewController.m
Update>>

ファイルの選択

操作したいファイルの番号を入力する。
今回は2番目のファイル(sampleBrowser/Base.lproj/Main.storyboard)を対象。
複数ファイルを選ぶ場合には、1,2 のようにカンマで区切る。

Update>> 2

すると、対象のファイルには * が表示される。

           staged     unstaged path
  1:    unchanged        +8/-2 sampleBrowser/AppDelegate.m
* 2:    unchanged       +36/-3 sampleBrowser/Base.lproj/Main.storyboard
  3:    unchanged       +21/-0 sampleBrowser/ViewController.m
Update>>

操作の実行

ここで、何も入力せずにEnterを押下で実行となり、ステージングされる。

Update>>
updated one path

*** Commands ***
  1: status   2: update   3: revert   4: add untracked
  5: patch    6: diff     7: quit     8: help
What now>

終了

対話操作の終了は、ここでCommandsからquitの 7 または q を入力すればOK。

What now> 7
Bye.

その他

他によくやる操作(Commands)は、

  • 1: status(git statusと同じ)
  • 3: revert(ステージングの取り消し)
  • 6: diff(ステージした変更のdiffを確認する)

便利。

いつのまにか

いつのまにかKindle半額セールが始まってた。この本にはいつもお世話になってます。

アリスとボブのGit入門レッスン

アリスとボブのGit入門レッスン