質問: ふとgitのコマンドの意味について調べたくなり「commit」について調べてみました。 辞書を引くと「委ねる」「委任する」「約束する」などの意味が載っていました。 gitを使っていて個人的にcommitはsubmit(送信する)的な意味だと思っていたのですが、gitにおけるcommitとはどういう意味なのでしょうか? 「(コミットメッセージに書いたことが実現されることを)約束する」のようなな意味なのでしょうか?
回答: IT分野に限らない一般社会で使われる commit という英単語は単なる意見表明(statement)ではなく、その内容に責任を持つ(promise)という意味合いが強く含まれています。 翻ってIT分野では commit はデータベース用語として用いられることが多いと思います。データベースの操作において commit とは、テーブルやレコードへの更新手順や更新内容を定義(予約)したあとで、「予約内容をすべて実行せよ。(更新内容が正しいかどうかはアプリが確認済みなので、この操作に対して異議を申し立てることはない、という強い意志を伴った命令)」という意味を持つステートメントです。 このような背景を踏まえると、Gitでの commit という言葉の意味が解りやすくなったのではないでしょうか。Git の commit は Git のリポジトリ(Gitのデータベースとも言える)に対する「予約内容をすべて実行せよ。」という意味です。作業コピー内でファイルにいろいろな編集を加えることは「ファイルの変更予約」であり、それらを commit することでリポジトリに保存される。さらに、その変更内容が正しいことを編集者自身が確認済みであり、後戻りすることはない、という強い意思表示を含んだ命令である。と考えるとわかりやすいのではないでしょうか。