【Git入門】git commitの使い方(作業内容をコミットする)
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 add
、git commit
)
一回で覚えるのは難しいと思うので、何度かトライして覚えるで全然大丈夫です。
今後もGitの基本的なワークフローについて解説していきます。
おわりっ!!
Discussion