Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】Git: From Zero to First Commit - Developer Journey Begins

2025年09月22日に「Dev.to」が公開したITニュース「Git: From Zero to First Commit - Developer Journey Begins」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

システム開発の基本ツールGitは、コードの変更履歴を管理し、チームでの共同作業を円滑にする。インストール後、プロジェクトを`git init`で開始し、ファイルを`git add`でステージ後、`git commit`で履歴を保存する。`git status`で状況を確認し、`git push`でチームと共有できる。

ITニュース解説

Gitは、ソフトウェア開発においてコードの変更履歴を管理し、複数人での共同作業を円滑に進めるための非常に重要なツールである。これは「バージョン管理システム」と呼ばれ、開発者がプログラムのソースコードに加えるあらゆる変更を記録し、必要に応じて過去の状態に戻したり、複数の変更を統合したりすることを可能にする。特に大規模な開発チームでは、誰がいつ、どのコードを変更したのかを正確に追跡することが不可欠であり、Gitはその中心的な役割を担っている。

Gitを使い始めるには、まず自身のコンピューターにインストールする必要がある。Windowsユーザーは専用のインストーラーをダウンロードして実行するか、wingetコマンドを使ってインストールできる。macOSではHomebrewを用いてbrew install gitと入力するか、Xcodeのコマンドラインツールをインストールする。Linux(Ubuntu/Debian系)ではsudo apt updateに続いてsudo apt install gitを実行する。インストールが完了したら、git --versionとコマンドを入力して、バージョン情報が表示されることを確認する。これにより、Gitが正しくセットアップされたことがわかる。

次に、Gitに自身の身元を教える必要がある。これは、コードの変更を保存する「コミット」と呼ばれる操作を行うたびに、誰がその変更を行ったかをGitが記録するためだ。git config --global user.name "あなたの名前"git config --global user.email "あなたのメールアドレス"というコマンドで、名前とメールアドレスを設定する。--globalというオプションは、この設定がコンピューター上のすべてのGitプロジェクトに適用されることを意味し、個々のプロジェクトで設定し直す手間を省く。この設定により、将来的に他の開発者がプロジェクトの履歴を見たときに、どの変更を誰が行ったかが明確にわかるようになる。設定した内容を確認するにはgit config --listコマンドを使う。

Gitの準備が整ったら、新しいプロジェクトを開始し、Gitの管理下に置く。たとえば、「banking-web」という名前のプロジェクトフォルダを作成するには、mkdir banking-webと入力し、次にcd banking-webでそのフォルダの中へ移動する。これらのコマンドはmkdir banking-web && cd banking-webのように&&を使って一行で実行することもできる。&&は、前のコマンドが成功した場合のみ次のコマンドを実行するという意味を持つ。フォルダに移動したら、git initと入力する。このコマンドが「魔法」であり、現在のフォルダをGitリポジトリとして初期化する。これにより、.gitという隠しフォルダが作成され、この中にプロジェクトのコミット履歴やブランチ情報、設定など、Gitがプロジェクトを管理するために必要なすべての情報が格納される。git initを実行することで、普通のフォルダがGitによって変更が追跡され、保存、復元、共同作業が可能になる特別なフォルダへと変わるのだ。

プロジェクトのフォルダがGit管理下になったら、いよいよファイルを作成する。最初のファイルとして、プロジェクトの説明を記述するREADME.mdを作成するのが一般的だ。echo "# Banking Web App" > README.mdというコマンドを使うと、# Banking Web AppというテキストをREADME.mdという名前のファイルに書き込むことができる。ここで使われる>は、echoコマンドの出力を画面に表示する代わりに、指定されたファイルに書き込む「リダイレクト」という機能である。ファイルが作成されたら、git statusコマンドを実行して、Gitがプロジェクトの状態をどのように認識しているかを確認する。このとき、README.mdは「Untracked files」(追跡されていないファイル)として表示される。これは、Gitが新しいファイルの存在を認識しているものの、まだそのファイルの変更を履歴に保存する対象としていない状態を指す。

README.mdをGitの履歴に含めたいと決めたら、そのファイルを「ステージングエリア」に追加する。これはgit add README.mdというコマンドで行う。ステージングエリアは、次のコミット(変更の保存)で記録したいファイルの変更を一時的に集める場所だ。再度git statusを実行すると、README.mdが「Changes to be committed」(コミットされる変更)として表示されるようになる。これで、ファイルが次のコミットの準備ができた状態だ。

ステージングエリアにファイルが追加されたら、いよいよその変更をGitの履歴に永久的に保存する「コミット」を行う。git commit -m "Initial commit: add README"というコマンドを実行する。git commitは、ステージングエリアにあるすべての変更のスナップショットを保存する命令だ。-mオプションは、「メッセージ」を意味し、コミットの簡単な説明を引用符で囲んで直接入力できる。このコミットメッセージは、後で他の開発者や自分自身が変更履歴を見たときに、そのコミットで何が変更されたのかを理解するための重要な情報となる。実際の開発では、それぞれのコミットが「誰が、いつ、何を、なぜ変更したか」という物語を語る。

コミットが完了したら、その履歴を確認できる。git log --onelineというコマンドは、プロジェクトのコミット履歴を簡潔に一行で表示する。これにより、各コミットの短いIDとコミットメッセージを一覧で確認できる。これがプロジェクトにおける最初のスナップショットであり、Gitの履歴に永続的に記録されたことになる。

その後、もしプロジェクトにさらなる変更を加えた場合、例えば新しいログインページに「パスワードを忘れた方へ」のリンクを追加したとする。mkdir srcsrcフォルダを作成し、echo '<a href="/forgot-password">Forgot Password?</a>' > src/login.htmllogin.htmlを作成する。再びgit statusを実行すると、src/login.htmlがUntracked filesとして表示されるだろう。これを先ほどと同じようにgit add src/login.htmlでステージングし、git commit -m "Add Forgot Password link on login page"でコミットする。これでプロジェクトの履歴には二つのコミットが記録されることになる。

開発の過程で、ファイルのさまざまな状態を理解することは重要である。ファイルは最初「Untracked」(Gitに認識されているが追跡対象ではない)な状態から始まる。git addで「Staged」(次のコミットに含まれる予定)な状態になり、git commitで「Committed」(履歴に保存された)な状態になる。コミット後にファイルを変更すると、そのファイルは「Modified」(変更されたがまだステージングもコミットもされていない)状態となる。git statusコマンドは、常にこれらのファイルの現在の状態を教えてくれる、開発者にとって最も頼りになるツールの一つだ。

また、プロジェクトにはGitで追跡する必要のない一時ファイルやログファイル、設定ファイルなどが生成されることがある。これらのファイルをGitの管理から除外するために、.gitignoreという特別なファイルを作成する。このファイルに、無視したいファイルやフォルダのパターン(例:node_modules/*.log)を記述し、.gitignore自体をGitにコミットすることで、不要なファイルがGitの履歴に含まれることを防げる。

これまでの作業はすべて自分のコンピューター内で行われる「ローカル」な作業だった。しかし、チームで開発を進めるには、自分以外の開発者とコードを共有する必要がある。そこで登場するのが、GitHubやGitLab、Bitbucketといったサービスが提供する「リモートリポジトリ」である。ローカルのGitリポジトリをリモートリポジトリに接続するには、git remote add origin https://github.com/ユーザー名/プロジェクト名.gitのようにコマンドを実行し、リモートリポジトリのアドレスを指定する。originは通常、リモートリポジトリのデフォルトの名前として使われる。その後、git branch -M masterでメインのブランチ名を調整し、git push -u origin masterコマンドでローカルのコミットをリモートリポジトリに送信する(プッシュする)。これにより、自分の変更がリモートリポジトリにアップロードされ、チームの他のメンバーがその変更をダウンロード(プル)して、各自のローカル環境に反映できるようになる。

今日のGitジャーニーを振り返ると、以下の重要なコマンドと概念を学んだことになる。 git initは新しいリポジトリを開始する。 git statusは現在の作業状態を確認する。 git addはファイルをステージングエリアに追加する。 git commit -m "メッセージ"は変更を履歴として保存する。 .gitignoreは追跡不要なファイルを指定する。 git log --onelineは簡潔な履歴を表示する。 git pushは変更をリモートリポジトリに共有する。

Gitは、コードを作成・編集する「ワーキングディレクトリ」、次のコミットに含める変更を選択する「ステージングエリア」、そしてプロジェクトの永続的な履歴が保存される「リポジトリ」という3つの主要な領域で動作すると考えると理解しやすい。

結論として、Gitは単なるツールではなく、開発者にとっての「タイムマシン」であり「安全ネット」だ。すべての変更が保存され、どんなミスも元に戻すことができ、チームでの共同作業が非常にスムーズになる。システムエンジニアを目指す初心者がこれらの基本的なコマンドを理解し、使いこなせるようになれば、すぐにでも開発チームの一員として貢献できるだろう。

関連コンテンツ

関連IT用語

関連ITニュース