🐙

GitHub #1 初心者編

に公開

GitHubとは

プログラムのソースコードをオンラインで共有・管理するサービス

基本概念

リポジトリの管理

プロジェクトのファイルとその変更履歴を保持する場所

パブリックリポジトリ

誰でもアクセスして内容を閲覧、コピー、ダウンロードできるリポジトリ

オープンソースプロジェクトによく使用される

プライベートリポジトリ

アクセス権を持つユーザーのみが内容を見ることができるリポジトリ

企業や個人の非公開プロジェクトに使用される

ローカル

作業をしているPC上にある情報 他の人から干渉されない

リモート

インターネットまたはネットワーク上のどこかに上がっているサーバー上の情報

コミット

特定の地点のファイルの状態を記録保存する一連のプロセス

ブランチ

コードの開発を分岐させ、異なる機能や修正を同時に独立して行うための機能

  • 並行開発 複数の機能やバグ修正を同時に進めることができる
  • リスクの分離 リリース用のブランチを分けることで破壊する危険性を分離できる

Pull Request

あるブランチをマージする時にマージしたいブランチの変更が妥当なものなのかをチームで議論、調整、レビューし合うためのリクエスト

  • バグがないか
  • チームとして見やすいものか
  • 規則に従っているか

レビュー者がOKを出したら合体することができる

Fetch

マージしたときなどリモートのブランチが新しくなった時にローカルに最新版の情報を反映する方法

Pull

fetchした値を実際に自分のローカルブランチに反映させること

Clone

他人が作業したリポジトリを自分のPCにコピーする作業

チーム開発ではプロジェクトのリポジトリをクローンして自分の作業を始める

初期設定

Gitのインストール

https://gitforwindows.org/ からインストーラーをダウンロード

インストーラーの手順に沿ってインストール

アカウント作成

https://github.co.jp/ でアカウント作成&登録

リモートリポジトリを作成

GitHubの管理画面で「Create Repository」

  • Repository name : リポジトリの名前
  • Public / Private : リポジトリの公開・非公開を選択
  • Initialize this repository with : : 他の人がリポジトリへアクセスした場合の参照用として「READ ME」ファイルを設置したい場合はチェックをいれる

ローカルのリポジトリを作成

  • PC上にディレクトリを作成

    mkdir ディレクトリ名
    cd ディレクトリ名
    
  • 作成したディレクトリをローカルリポジトリに設定

    git init
    

    作成が完了すると以下のように表示される

    Initialized empty Git repository in C:/Users/XXX/XXX/XXX/.git/
    

基本的な使い方

ローカルリポジトリにコミット

保存したファイルはリポジトリには追加されていない

→コミットする必要がある

  • どの変更を保存(コミット)するのか選んで、変更したファイルをインデックス(変更内容を一時的に保存しておく場所)(ステージングエリア)へ追加

    →ステージング

    git add ファイル名
    
  • インデックスに追加したファイルをコミット(ローカルに記録)

    この時点ではリモートには記録されていない

    git commit -m "Add ファイル名"
    
  • コミットメッセージを含む変更履歴を確認

    git log
    

リモートリポジリにプッシュ

ローカルリポジトリとリモートリポジリにプッシュ

ローカルに記録した変更をインターネット上に上げる作業

  • ローカルリポジリで以下を実行

    git remote add origin https://github.com/ユーザー名/リモートリポジリ名.git
    
  • 紐付け完了後、以下のコマンドでプッシュを実行

    git push origin ブランチ名
    

    →GitHubの認証画面が表示され、ログインする

    →完了

ブランチの作成

  • ブランチの作成

    git branch ブランチ名
    
  • ブランチが正常に作成されているか確認

    git branch
    

    成功していたら以下のように表示される

    *main
     ファイル名
    
  • ブランチの移動

    git checkout ファイル名
    

    再度ブランチの状況を確認

    git branch
    

    以下のように表示される

     main
    *ファイル名
    

ブランチにプッシュ

ブランチにプッシュするコマンドはリモートリポジリにプッシュする方法と同じ

  • ブランチに移動した状態で以下を実行

    git add ファイル名
    git commit -m "Add ファイル名"
    
  • 変更内容をリモートリポジリに反映

    git push origin ブランチ名
    

    →GitHubのリポジリ画面を確認すると、ブランチが作成されている

ブランチからプル

共同で作業している他開発者がxxxブランチで開発を行う場合は、プルコマンドを実行

(他開発者が同じGitHubのリポジリで作業をしており、他開発者の端末での作業をしているケースを想定)

  • ブランチへ移動

    git checkout ブランチ名
    
  • ブランチからプル

    git pull
    

ブランチのマージ

  • mainブランチへ移動

    git checkout main
    
  • ブランチの作業内容をマージ

    git merge ブランチ名
    

    →以下のように表示されブランチで作成したファイルが追加されたことが確認

    ⚪︎ file changed, ⚪︎ insertions (+)
     create mode XXXXXX ファイル名
    
  • GitHubにプッシュ

    git push origin main
    

    →マージの完了

ブランチを削除

役割を終えたブランチを削除

  • ブランチを削除

    git branch -d ブランチ名
    
  • 結果の確認

    git branch
    

    →以下のように表示

    *main
    
  • GitHubのリモートリポジリからもブランチを削除

    git push --delete origin ブランチ名
    

Fetch

ローカルに最新版の情報を反映

  • リモートのすべてのブランチの最新情報の取得

    git fetch origin
    

    ※あくまで情報を持ってくるだけであってローカルのブランチを最新版に更新するわけではない

Pull

fetch後に自分のローカルブランチに反映

git pull origin リモートのブランチ名

Clone

自分のPCにリポジリをコピー

git clone リポジリのURL

リモートリポジリとローカルリポジリを繋げる

echo "# リポジリの名前" >> README- md git init
git add README. md
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/ユーザ名/リポジリ名 .git
git push -u origin main

Gitのキャッシュの消し方

git rm -r --cached .
git add .
git commit -m "fix: refresh gitignore rules"
git push

Memo

  • ローカルのリポジリをリモートのリポジリに繋げた後にローカルのリポジリの場所を移動しても問題ない
    • GitHubはリポジリ内の.gitというファイルを元に動作する
    • .gitは隠しファイルであるため普段は表示されない
GitHubで編集を提案

Discussion