みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。
ノンプログラマー向け技術同人誌の制作プロジェクトとその制作方法についてシリーズでお伝えしています。
前回の記事はこちら。
Gitでリモートリポジトリのクローンをする方法をお伝えしました。
今回はいよいよ作成したリモートリポジトリに変更履歴を記録していきます。
ということで、ノンプログラマー向け、はじめてのGitのコミットをして変更履歴を記録する方法です。
なお、技術書の制作をお題として進めていますので、事前順次や前提についてはこちらの記事からご覧いただければと思います。
では、行ってみましょう!
前回までのおさらい
まずは、これまでのおさらいと現状の整理です。
技術書の執筆の前段階として、その環境づくりをしています。
編集者と執筆者の2名が共同作業ができるように、以下の3つのリポジトリを用意する必要があるとしています。
- GitHubに共有・共同作業用のリモートリポジトリを作る
- 編集者のローカル環境にローカルリポジトリを作る
- 執筆者のローカル環境にローカルリポジトリを作る
前回までで、1と2が完了しています。
次は、3に進みたいところなのですが、変更履歴がない状態で執筆者のローカル環境でクローンを作ると、うまくいかなくなっちゃうので、いったん編集者によって、最初の変更履歴の記録つまりコミットをしておいたほうがいいんですね。
ということで、前回に引き続き、編集者の立場で、ローカルリポジトリにコミットをする方法を見ていきましょう。
コミットの対象ファイルを準備する
リポジトリに変更がないとコミットできないので、まず適当なファイルを準備しましょう。
codeコマンドでVS Codeを立ち上げます。
Command + N などで、新規ファイル「welcome.md」を作成して、以下のように適当に内容を入力します。
ここで、VS Codeのタイトルバーを見て、ファイル「welcome.md」がディレクトリ「writing-test」の配下に作られていることを確認しておきましょう。
なお、拡張子「.md」はマークダウン形式のテキストファイルを意味しています。
原稿の執筆はマークダウンを使いますからね。
コミットをして変更履歴を記録する
すでにお伝えしている通り、リポジトリに変更履歴を記録することをコミットといいます。
準備が整いましたので、いよいよコミットをしていきましょう。
git addコマンドによるステージング
ファイルが準備できましたので、現在のディレクトリの状態をコミットしていきます。
ただ、コミットをする前に、コミットの対象となるファイルとフォルダを選別するという手順が必要です。
この操作をステージングといいます。
このシリーズの例では、多くの場合、カレントディレクトリ内のすべてをコミットしてしまえば良いことが多いのですが、時には特定のファイルだけを選別してコミットをしたいというときもあります。
なので、Gitではステージングしたファイルやフォルダだけをコミットするという仕様になっています。
ステージングをするには、以下のgit addコマンドを用います。
今回の例では、カレントディレクトリすべてが対象で良いので、対象を「.」としてOKです。
git statusコマンドでリポジトリの状態を確認する
では、ちゃんとステージングされたかどうか確認してみましょう。
git statusコマンドを用いることでリポジトリの状態を確認することができます。
実行すると、以下のような表示がされます。
ここで「On branch ブランチ名」は現在のブランチ名を表します。
今回の例では「master」というブランチにいることがわかりますが、ブランチについては以降の記事で詳しく解説しますので、今はあまり気にせずでOKです。
「No commits yet」は、コミットがないときに表示されます。
「Changes to be committed:」に続く部分では、ステージングされていてコミットされていないファイルが緑色で表示されます。
補足: デフォルトブランチ名はmainに変更
GitHubで作成したリポジトリのデフォルトブランチ名は、本記事執筆当初は「master」でしたが、現在は「main」に変更されています。
git commitコマンドでコミットする
では、ステージングされたファイルをコミットしていきましょう。
git commitコマンドを使います。
実行すると、VS Codeが反応して「COMMIT_EDITMSG」というタブが開きます。
初期状態で、コミットに関する情報がコメントとして入力されています。先ほどのgit statusで見たのと少し似ていますね。
この1行目にコミットのタイトル、2行目は空けて、3行目以降に詳細を書いていきます。
コミットの際に、その変更履歴についてのメッセージを残すことができ、それをコミットメッセージといいます。
これがあることで、どのような状態の変更履歴なのかというのが、後から確認できるというわけです。
今回は以下のようにしました。
- コミットタイトル: Welcome!
- コミットの詳細: masterの最初のコミットです
書き終わったら command + S などで保存して、「COMMIT_EDITMSG」タブの「×」アイコンで、タブを閉じます。
すると、ターミナルには以下のようにコミットの結果が表示されます。
コミットの結果を確認する
では、コミットの結果を確認しましょう。
まず、リポジトリの状態は先ほどのgit statusコマンドで確認できますね。
コミットの履歴を確認する場合は、それとは別のgit logコマンドを使うことができます。
それぞれ実行してみます。
それで、まずgit statusコマンドの結果を見てみましょう。
先ほどの、コミット前のものと比べてみていただければと思います。
「nothing to commit, working tree clean」は、すべてがコミットされていて、その後に変更されたファイルがない状態を表しています。
ちなみに、「Your branch is based on ‘origin/master’, but the upstream is gone.」はリモートリポジトリにmasterがないよーという意味です。この例では特に問題はないので、大丈夫です。
続いて、git logの結果を見てみます。
先ほど行ったコミットのユーザー名、メールアドレス、日時、コミットメッセージなどが確認できますね。
まとめ
以上、ノンプログラマー向け、はじめてのGitのコミットをして変更履歴を記録する方法についてお伝えしました。
ステージング、コミット、リポジトリの確認、コミットログの確認とたくさんコマンドをお伝えしましたが、よく使うことになると思いますので、ぜひ覚えておきましょう。
また、ステータスやログなどをはじめ表示される情報にできるだけ目を通して、理解できるようにすると良いです。
英語ですし、ややつっけんどんなメッセージに見えますが、今何をしているのか、どういう状態なのかを知る、強い味方になります。
次回は、ローカルリポジトリの状態をリモートリポジトリに反映する「プッシュ」についてお伝えしていきます。
どうぞお楽しみに!
連載目次:ノンプロ向けGit・GitHubで技術同人誌を共同制作しよう!
コミュニティ「ノンプログラマーのためのスキルアップ研究会」の活動をより魅力的にすべく、メンバーの皆さんと技術同人誌を制作するプロジェクトをスタートしました。このシリーズでは、プロジェクトの概要や、ベースとなる技術情報をお伝えしていきます。- 技術同人誌とそのメリット&ノンプロ的な作り方の手順について
- 【ノンプログラマー向け】Gitによるバージョン管理の超基礎知識
- Windowsノンプログラマー向けバージョン管理ツールGitをインストールする方法
- Windowsノンプログラマー向けバージョン管理ツールGitの初期設定
- Macノンプログラマー向けバージョン管理ツールGitのインストールと初期設定
- 【ノンプログラマー向け】はじめてのGitHubとそのサインアップの方法
- ノンプログラマー向けGitHubによるリモートリポジトリの作成の方法
- 【ノンプログラマー向け】Gitでリモートリポジトリのクローンをする方法
- 【ノンプログラマー向け】はじめてのGitのコミットをして変更履歴を記録する方法
- Gitではじめてプッシュをしてリモートリポジトリに変更履歴を反映する方法
- GitHubで他のユーザーをリモートリポジトリに招待して承認してもらう方法
- 【Windows版】リモートリポジトリをローカルにクローンをする方法
- Gitのブランチとは何か?またブランチを作成、切り替える方法
- Gitで原稿の変更履歴をコミットし、リモートにプッシュする方法
- GitHubのレビューとプルリクエストについて、およびその作成方法
- GitHubでプルリクエストを確認しコメントをしてマージをする
- Gitでプルリクエストをマージされたリモートリポジトリをプルする方法
- GitHubのプルリクエストをレビューして修正を依頼する方法
- GitHubのプルリクエストに対するレビューの修正に対応する方法
- GitHubでプルリクエストの修正対応を確認してマージをするまで
- GitHubでレビュアーが修正コミットをしてマージをする方法