🪁

Git と GitHub 基本操作手順(開発時の操作編)

2024/11/28に公開

はじめに

開発時の基本操作手順の備忘録である.初期設定を行っていない場合は下記リンクから設定を行う.

2 パターン存在する開発のスタート地点

Git と GitHub を用いて開発を進める場合,まず「リポジトリ」を用意する.「リポジトリ」はコードを扱う単位のことで,1 プロダクトに対して 1 リポジトリ,という理解で進めれば OK.

リポジトリには 2 通りの作り方がある.

  1. GitHub 上に作成したリポジトリのクローン(clone)を作って操作を加える(ゼロスタートのパターン).

  2. 空のリポジトリを作ってコンテンツを追加・GitHub との連携を設定する(あとから連携パターン).

上記 2 つのパターンで異なるのは最初の設定部分のみだ.その後の開発手順はどちらも同様となる.

ゼロスタートのパターン

コードを一切書いていない状態からスタートする場合はこのパターンを使う.この場合,まず GitHub 上で「リモートリポジトリ」を作成する.その後,作成したリポジトリを手元の PC にクローンして開発を進める.本手順は初回のみ実行すれば OK.

  1. GitHub 上にプロダクト用のリモートリポジトリを作成する.

  2. 作成したリポジトリをクローンする.

    git clone YOUR_REPOSITORY_URL
    
  3. エディタでクローンしたディレクトリを開き,コードを記述する.以降はもう一つのパターンと同様となる(後述).

あとから連携パターン

すでに何らかのコードを書いている状態から GitHub と連携させる場合はこのパターンを使う.例えば,フレームワークなどを用いる場合にはコマンドを実行すると初期状態のコードが生成されるため,このパターンが適している.以下の操作も初回のみ実行すれば OK.

  1. GitHub 上にプロダクト用のリモートリポジトリを作成する.作成すると URL が表示されるのでそのままにしておく.

  2. 手元のプロダクトのディレクトリでローカルリポジトリを作成する.

    # 【超重要】必ずプロジェクトのディレクトリに移動してから実行する
    cd YOUR_PROJECT_DIRECTORY
    git init
    
  3. リモートリポジトリとローカルリポジトリを連携させる.

    git remote add origin YOUR_REPOSITORY_URL
    
  4. エディタでクローンしたディレクトリを開き,コードを記述する.以降の手順は同様.

共通の手順

どちらのパターンでも commit(バージョンの保存)と push(リモートリポジトリに保存)の手順は共通となる.本手順を繰り返しながら開発を進める.

  1. ファイルの変更をステージングする.

    コードの書き換えが終わり,書き換え後のファイルをバージョンとして保存したいときには,明示的に git add コマンドを実行する.この段階ではまだ,Git はファイルをステージングするだけでバージョンは保存されていない.ステージングとは.コミットによってスナップショットを撮る前の準備段階のことであり,保存するバージョンに含めるファイルを選択するという認識で OK.

    # 全てのファイルをステージングする
    git add .
    
    # 特定のファイル(例: index.html)をステージングする
    git add index.html
    
  2. ステージングしたファイルをコミットする.

    ステージングしたファイルをコミットすることで,その時点のファイルの状態をバージョンとして保存する.

    git commit -m "commit message"
    

    commit message には,そのコミットの内容を簡潔に記述する.何かの目的で特定の変更を見つけるためにリポジトリ履歴を遡っていかなければならないときや,コンテンツの変更の細部を見ないでコミットでどのような変更が行われたかを知りたいときにとても役立つ.

  3. GitHub のリモートリポジトリに push する.

    ローカルリポジトリでコミットした内容をリモートリポジトリに送信する.push コマンドを実行することで,リモートリポジトリにコミットした内容が保存される(= ブラウザでコミット内容を確認できる).

    git push origin main
    

開発時は「共通の手順」を繰り返して作業を進めれば OK!

以上だ( `・ω・)b

GitHubで編集を提案

Discussion