動機
今まで SourceTree を使ってソースコードを管理していましたが、以下の理由でやめることにしました。
- SourceTree は重い
- IntelliJ でコーディングしているのに別アプリと往復するのは手間
- IntelliJ にはせっかく様々な機能があるので使い倒していきたい
そこで IntelliJ の changelist を使って上手くソースコード管理すべく、SourceTree はいったん封印しました。結論からいうと、changelist は使いやすいと思います。changelist を活用するようにしてからずっと SourceTree を起動していません。
環境
IntelliJ IDEA 2018.1.6 (Ultimate Edition)
changelist とは
- 名前の通り、変更を管理するリストのこと
- 最初は Default と Unversioned Files のみ存在する
- 名前をつけることによって何のための変更なのかを管理することができる
ここがいいんだよ changelist
- changelist ごとコミットできる
- コミットメッセージがデフォルトで changelist の名前
- あらかじめ行う予定のコミットごとに changelist を作成し、ソースコードを変更したら、変更内容に該当する changelist に入れていくだけで、ソースコードと一緒にコミットも管理できる
- コミットログがきれいになってソースコードレビューしてもらいやすくなる
- 大きい開発をするときに、明示的にやることを区切りながら開発できる
- 同じファイル内の異なる変更を異なる changelist で管理できる
- 以下のようにしてコミットメッセージと変更内容の相違を防止できる
- User.java でユーザを作成する処理の追加を changelist1 で管理
- User.java でユーザを削除する処理の追加を changelist2 で管理
- 以下のスクリーンショットのように、緑色の
[
で表現されている範囲単位で管理できる- 緑色の
[
をクリックすれば、変更箇所の revert や別 changelist への移動も可能- 新しい changelist を作り、そこに移動させることもできる
- 緑色の
- 以下のようにしてコミットメッセージと変更内容の相違を防止できる
※ 別個に管理したい変更が同じ緑色の [
範囲内だと 1 つの changelist にせざるを得ず辛い
changelist を作る
- 作業ブランチを切る
- Command+9 を押して Version Control を開く
- Local Changes タブをクリックする
- 左側メニューの + をクリックして新しい changelist をつくる
- 名前は開発ルールに沿ったり自分の使いやすいようにしたりするのが一番だと思います
- 私は「チケット名」+「コミット内容を一言で表したもの」にしています