【Git入門】git commitの使い方(作業内容をコミットする)

2024/05/05に公開

0.はじめに

Git入門者向けに、git commitコマンドを使って「作業内容をコミットする方法」を解説します。

本記事の内容に沿って、ハンズオンいただくと以下を習得できます。

  • コミットとは何かを理解できる
  • Gitで作業内容をコミットするためのワークフローを習得できる

では、次の章から具体的な解説を進めます!!

1.コミットとはなにか?

コミットとは、以下図のように「Gitのリポジトリに作業内容(ファイルの変更など)をセーブすること」です。

コミットを利用することで、自分の作業履歴を記録し、以前の状態を保持(戻す)することが可能になります。

次章で、コミットするためのワークフローを解説します。

2.Gitで作業内容をコミットするためのワークフロー

実際に、Gitで作業内容をコミットするためのワークフローを試してきます。

  • 作業内容をStage(add)する
  • 作業内容をコミットする

2.1.作業内容をStageする

実際に、README.mdを変更し、その内容をStageしてみましょう。今回は、自身で作った「sample-repo」というリポジトリで試していきます。

まず、git statusコマンドで、Working directory、Staging areaの作業状態を確認してみます。

$ git status

すると、以下のように表示されます。現状、何も作業をしていないので、コミットもworking directoryもクリーンな状態であることがわかります。

$ git status
On branch update-readme
nothing to commit, working tree clean
$ 

次に、README.mdを変更します。内容はなんでもいいです。以下は変更内容の一例です。

$ ls
README.md
$ cat README.md
# sample-repo
練習用に更新!
$ subl README.md
$ cat README.md
# sample-repo
Git練習用
$

再度、git statusを実行してみましょう。

$ git status

すると、以下のように「working directoryにはREADME.mdというmodified(修正)された作業がある」と表示されます。要は、変更されたREADME.mdがworking directoryに存在しているという意味です。

$ git status
On branch update-readme
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   README.md

no changes added to commit (use "git add" and/or "git commit -a")

この変更内容を最終的にはコミットしたいので、git addコマンドを使って、working directoryからStaging areaへ移動させます。

$ git add README.md

再度、git statusを実行してみましょう。

$ git status

すると、以下のように「コミットされるべき変更にREADME.mdというmodified(修正)された作業がある」と表示されます。要は、変更されたREADME.mdがStaging areaに存在しているという意味です。

$ git status
On branch update-readme
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   README.md

ちなみに、今回はgit add <filename>で、特定のファイルを指定する方法を採用しましたが、git add .とすることでカレントディレクトリ配下の全てのファイル、フォルダをStaging areaに追加することができます。

$ git add .

実際の業務ではこちらを利用することが多いので、慣れてきたらコッチでaddしましょう!

「作業内容をStage(add)する方法」は以上となります。次章で、「作業内容をコミットする方法」を見ていきます。

2.2.作業内容をコミットする

前章で、Staging areaに上げた作業内容をコミットしてみます。

念の為、コミット前にgit statusコマンドで、Working directory、Staging areaの作業状態を確認しておきましょう。

$ git status

すると、以下のように表示されます。前章から何も作業をしていないので、README.mdだけがStaging areaにある状態です。

$ git status
On branch update-readme
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   README.md

では、git commitコマンドを使って、変更内容をコミットしてみます。

$ git commit -m "update readme for zenn"

再度、git statusを実行してみましょう。

$ git status

以下のように表示され、コミットもworking directoryもクリーンな状態であることがわかります。

$ git status
On branch update-readme
nothing to commit, working tree clean
$ 

「作業内容をコミットする方法」は以上となります。

3.おわりに

今回はgit commitの理解を深めるために、以下を学びました。

  • コミットとは何かを理解できる(作業内容(ファイルの変更など)をセーブすること)
  • Gitで作業内容をコミットするためのワークフローを習得できる(git addgit commit

一回で覚えるのは難しいと思うので、何度かトライして覚えるで全然大丈夫です。

今後もGitの基本的なワークフローについて解説していきます。

おわりっ!!

参考サイト(GitHubDocs)

Discussion