たなかのJava日記

どんなことをやったか(学んだか)、どこで詰まったか(わからなかったか)、どこで工夫したかの記録です。

Git-コミット-

Gitでのコミットについてまとめました。

■コミット
コミットとは、1つ以上のファイルの状態を履歴で確定させる操作です。
意図的なセーブポイントみたいなもので、何度でも行うことができます。
コミットしておくと、助かることがあります。
あとからいつでもコミットしたときの状態に復旧したり、
ファイルの状態を比較したりできたりするためです。
コミットを行うには[Ctrl]+[K]を押して「コミットツールウィンドウ」を表示します。
とはいえ、コミットばかりするのも考え物です。
どのようなタイミングでコミットを行えばよいのかは以下になります。

■コミットを行うタイミング(はじめのうちの目安)
・プロジェクトを作成した後
・テストコードを実装した後
・機能の実装を終えてテストケースも通った後
リファクタリングを行う前後
・文法に自信がないうちはコンパイルが通ったタイミング

■コミットツールウィンドウ
コミットツールウィンドウは、コミットを行う[Ctrl]+[K]を押した後に開かれる画面です。
大きく2種類のリストがあります。
・デフォルト変更リスト(変更)
・バージョン管理外ファイル

最初はすべてのファイルが「バージョン管理外ファイル」となっています。
ですので、自らファイルを選択しそれが「履歴管理」の対象となる仕組みです。
選択の取捨選択をし、コミットを押すことでコミットは実行できます。

そもそも、コミットの対象はどのように取捨選択しているのでしょうか。
IntelliJ IDEAでMavenを使用している場合には、
基本的に3つのファイルに分けられていることをまずは知る必要があります。

IntelliJ IDEAが自動的に作成する.ideaという管理用のファイル
Mavenのプロジェクトファイルであるpom.xmlファイル
・クラスやテストコードの.javaファイル

結論から言うと、一人で開発を行っている場合はこれら全て選択しても問題ありません。
しかし、共同開発を行う場合はコミット対象にしてはいけないファイルが
ルールとして設けられている場合があります。
例えば、「.ideaディレクトリ」やEclipseの「.classpth/ .settings」
といったIDE固有のディレクトリ/ファイルです。
チームでどのような運用になっているのか確認してからコミットするようにしてください。
ideaディレクトリ内には共有すべきでないファイルもあります。
詳しくは下記のWebページを参照してください。
https://support.samuraism.com/jetbrains/faq/share-idea-directories

とはいえ、特定のファイルやディレクトリをコミット対象から毎回選択を外したりするのは面倒です。
人間なのでミスや漏れもあるでしょう。
特定のファイルやディレクトリをコミット対象から常に外すには、
「gitignoreファイル」にファイルを作成し、ある記載を行います。

■gitignoreファイルの作成
ファイルやリソースファイル、HTMLファイルといった、
プロジェクトで必要となるファイルはGitで履歴を管理します。
.classファイルや.logファイルなどは、コンパイルや実行といった操作によって自動的に生成されるものです。
ソースコードと共に管理する必要はないでしょう。
Gitでは.gitigoreというファイルに管理が不要なファイルの一覧を記述しておくことでコミットを避けることができます。
.gitignoreファイルを作成するには、
[Alt]+[1]キーでプロジェクトツールウィンドウへ移動します。
さらに、プロジェクトのルートディレクトリ(プロジェクトツールウィンドウで一番上に表示されるディレクトリ)
にフォーカスを置いた状態で、[Alt]+[Insert]キーで
新規ファイル作成のポップアップを表示して[ファイル]を選択します。
ファイル名として「.gitignore」を入力して確定すれば作成完了です。
ここには無視したいファイル名やディレクトリ名を指定します。
ワイルドカードの使用が可能です。

※記載の例
*.class
*.log
target

targetディレクトリを記載している理由は
Mavenでビルドした結果が出力されるファイルだからです。
開発が進むにつれてコミットしたくないファイルが増えたら
その都度、追加してください。

■その他
二回目に河野コミットを行う場合は、変更リストのファイル名をダブルクリックするか
エンターキーを押すことで、差分を表示することができます。
コミットする前に間違った修正が行われていないか確認ができます。
また、Gitログの確認もできます。
[Alt]+[9]キーで、これまで行ったコミットとそれぞれのコミットログ、
変更が行われたファイルの一覧や差分を管理することができます。