🎉

Git あなたはなにものなの? 4日目

2024/10/28に公開

はじめに

Subversionしか使ってこなかったGit初心者が最低限、Gitの操作に迷わないようにコミットまで実施できるようにすることを目的としています。2日目に展開したmvcテンプレートをサンプルプログラムとして、Gitにコミットをする過程とGitの初歩のコマンドの説明をしています。

Gitとは

分散型リポジトリが特徴的で各開発者のローカル環境に全履歴が保存することか可能。Gitはステージングエリアが準備しやすくアジャイルに向いているように思える。SVN(Subversion)だとステージングがないので変更後すぐにコミットされちゃう分、扱いやすいのかな。。 これは使いながら恩恵を感じればよさそう。

Gitの最低限身につけておくべき知識

下記は最低限の知識かな。

  1. リポジトリの作成とクローン
    • git init: ローカルリポジトリを作成。
    • git clone: リモートリポジトリをローカルにコピー。
  2. 変更の追跡
    • git add: 変更したファイルをステージングエリアに追加。
    • git commit -m "メッセージ": ステージングエリアの変更を確定(コミット)。
    • git status: 現在のリポジトリの状態を確認。
  3. 変更の確認
    • git diff: コミットされていない変更を確認。
    • git log: コミット履歴を表示。
  4. ブランチ操作
    • git branch: ブランチの確認や作成、削除。
    • git checkout -b 新しいブランチ名: 新しいブランチを作成して移動。
    • git checkout ブランチ名: 既存のブランチに移動。
  5. リモートリポジトリとの同期
    • git pull: リモートリポジトリの最新状態をローカルに反映。
    • git push: ローカルのコミットをリモートに反映。
  6. マージとコンフリクト解消
    ※コンフリクトとは・・・複数のブランチで同じファイルの同じ部分が異なる内容で編集され、Gitが自動で統合できない状態
    • git merge ブランチ名: 他のブランチの変更を現在のブランチに統合。
    • コンフリクトが発生した場合は、手動で修正して再度コミット。

Gitをインストール

  1. Git公式サイトからGitをダウンロード(Windows)
    下記からWindows用のインストーラーをダウンロードして、実行。
    https://git-scm.com/downloads/win

  2. デフォルト設定で完了可能

  3. インストールの確認

PS D:\works> git --version
git version 2.47.0.windows.1
PS D:\works> 

問題なくインストールが完了。

ローカルリポジトリを作成してみよう

作業ディレクトリでinitを実行する。

PS D:\works\HelloWorldApp> git init
Initialized empty Git repository in D:/works/HelloWorldApp/.git/
PS D:\works\HelloWorldApp> 

成功すると、「Initialized empty Git repository in <path-to-your-repo>/.git」と表示。この時点で、.gitという隠しフォルダが作成され、リポジトリの管理が開始される。

コードをステージングする

Gitのコードを上げるには、いったんステージングにアップする必要があり、それをステージングと呼ぶとのこと。では早速addを使ってアップしてみますよっと。

PS D:\works\HelloWorldApp> git add .
PS D:\works\HelloWorldApp> 

.を指定すると、全コードが対象になる。

続いて、変更内容を確認するためにstatusを使用

PS D:\works\HelloWorldApp> git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   Controllers/HomeController.cs
        (省略)
        new file:   wwwroot/lib/jquery/dist/jquery.min.map

git status コマンドの出力の補足

1. ブランチ情報
  • On branch master
    現在、masterブランチ上で作業中です。
2. コミットがまだない状態
  • No commits yet
    このリポジトリにはまだコミットが存在せず、最初のコミットが必要です。
3. ステージング済みのファイル
  • Changes to be committed:
    ステージングエリア(次のコミットに含まれる予定の領域)に、新規追加ファイルがリストされています。git add コマンドを使った結果、これらのファイルがステージングされました。

  • new file: Controllers/HomeController.cs など、new file としてマークされたファイルはすべて新しく追加されたファイルで、次のコミットに含まれる準備が整っています。

4. ファイルをアンステージする方法
  • (use "git rm --cached <file>..." to unstage)
    ステージング済みのファイルを再度ステージから外したい場合、git rm --cached <file> コマンドでアンステージできます。

コードをコミットをしてみる

いよいよcommitの実行だ!!

PS D:\works\HelloWorldApp> git commit -m "初回コミット"
Author identity unknown

*** Please tell me who you are.

Run

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got 'xxxx@Onecara.(none)')

あらら、エラーになりましたよ。
こちらを調べてみると

エラーメッセージの内容

  • "Author identity unknown"
    Gitは、コミットを行った「作成者の情報」を認識できません。

  • "Please tell me who you are"
    自分の名前とメールアドレスを設定して、誰がコミットしたのかをGitに知らせる必要がある、という意味です。

  • "Run git config --global user.email "you@example.com" and git config --global user.name "Your Name""
    以下のコマンドを使って、名前とメールアドレスを設定するように指示しています。

つまり、Gitをコミットするには「ユーザー名」と「メールアドレス」が設定が必要とのことです。
では早速設定してみよう。

PS D:\works\HelloWorldApp> git config --global user.name "Onecarat"  # あなたの名前を設定
PS D:\works\HelloWorldApp> git config --global user.email "XXXX@XXXX.com"  # あなたのメールアドレスを設定

さて、リベンジコミット

PS D:\works\HelloWorldApp> git commit -m "初回コミット"
[master (root-commit) 741b01a] 初回コミット
 115 files changed, 77749 insertions(+)
 create mode 100644 Controllers/HomeController.cs
 (省略)
 create mode 100644 wwwroot/lib/jquery/dist/jquery.min.map

無事コミット出来ました。簡単ですね。

次はプログラムを作る前に品質を保つための最初の一歩、でも大事なことをやろうと思う。

Discussion