Git-Hub について

·

·

GitHubとは

GitHub(ギットハブ) サービス提供元:米 GitHub社(保守対応も含め) ※2018年 マイクロソフトの傘下。

ソフトウェア開発のプラットフォーム。コードのバージョン管理システムにはGitを使用する。 複数人のエンジニアがリモートリポジトリとして活用する他、チーム開発を行うための機能を提供するWEBサービス。 リポジトリとしての機能を持つ他にも、コードレビュー機能やWikiなどのコミュニケーションツールとしての機能を持ち、組織規模を問わず、多くの企業・団体がソフトウェア開発で利用する。

GitHubにソースコードをホスティングすることで複数人のソフトウエア開発者と協働してコードをレビューしたり、プロジェクトを管理しつつ開発を行うことができる。

(サイト引用)GitHubの基本機能

(サイト引用)GitHubの導入からブランチ作成

(サイト引用)GitHub一連の処理の動き

[用語]

Issue課題、修正点
Pull Request
Files ChangedPull Requestで表示されるファイルの変更数
リバートバージョニングを一つ一つ戻ること
ブランチ特定の変更点から分岐点までのこと
featture機能開発
リポジトリバージョン管理によって管理されるファイルと履歴情報を保管する領域

バージョン管理基礎(バージョン管理システム)

〇Git(現場での使用率:高)【各端末へ分散型】 バージョン管理システムは大きく「集中型」と「分散型」に分けられる。

●分散型

  • Git Hubと連携されているため、サーバーの構築は不要
  • ファイルの追加や変更の履歴情報を管理することで、過去の変更箇所を確認する、特定時点の内容に戻す、などの「バージョン管理」という作業が可能となる
  • 「分散型」のバージョン管理システムでは個々人のマシン上にリポジトリを作成して開発を行うことができ、現在のチーム開発における主流となっている。
  • 分散型のバージョン管理システムであるGitでは、まず個々人のマシン上にあるリポジトリ上で作業を実施後、作業内容をネットワーク先のサーバー上などにあるリポジトリに集約する流れで開発を進めていく。 この個々人のリポジトリを「ローカルリポジトリ」、集約先となるリポジトリを「リモートリポジトリ」と呼ぶ。

・基本的な流れ
①ローカルリポジトリにリモートデータの取得
②ローカルリポジトリでファイル更新を履歴に反映
③リモートリポジトリでローカルのデータを反映

[補足]

  • コメント、承認:レビューの申請と承認 → レビューで承認がないと統合されない
  • 複数の各々のブランチを統合(マージ)するのが主流
  • ブランチを作成すると、そのコードはブランチを作成する前のコードから分析し、「別の時間を生きる」こととなる。
  • 別の時間を生きたコードは自分だけの経験(変更)を蓄える。
  • 上記プロセスに問題がなければ、親(分岐元)は「マージ(記憶を統合)を要求」する
  • マージは基本リモートリポジトリで実施する

●集中型 SVN【中央集権型】 ※管理するサーバーは自分で立てる

  • バージョンを管理するリポジトリは単一。
  • リポジトリが壊れても、スナップショットで復旧が可能。
  • Gitに比べて容易であり、学習コストが低い。
  • 特定の場所にあるリポジトリへの接続が必須となる。

(サイト引用)リポジトリ作成方法

機能

  • ブランチ保護:GitHubは直接コミット禁止によるブランチの保護(保護されたブランチ/protected branches)を提供する。
  • GitHubにホストされたリモートレポジトリはgit pushにより更新できる。 →これを許容すると意図しないバグによりpushを受けたブランチが壊れるリスクがある。
  • GitHubは「指定ブランチへの直接コミット禁止 + チェック通過Pull Requestを介したmerge/rebase許可」という機能を提供することで、ブランチに問題のあるコミットが混入しないことを可能にしている。

コマンド

git rm -rf {レポジトリ名} git clone 削除
git rm -rf .gitgit 削除
git ls-files –stageインデックスの中身を見ることができる。
git checkout「ブランチ名」ブランチへの移動
git branchブランチ一覧表示
git branch 「ブランチ名」ブランチ追加
git branch -d 「ブランチ名」ブランチ削除
git branch -D 「ブランチ名」ブランチ強制削除
git cloneリモートリポジトリのクローンを生成
git pullgitリポジトリにある最新のソースコードを取得
git addインデックスにファイル等を認識させる
git reset HEADgit add の取り消し
git commitリモートリポジトリにファイル更新の差異を登録する
git pushリモートリポジトリへ差異を連携する

[ローカルで削除した結果を反映させる方法]
git add -u # update option
git commit -m “deleted some files”
git push

add → commit → push
git push リポジトリ名(※origin) ローカルブランチ名:リモートブランチ名

Q&A

[GitHub ReadMe とは]
リポジトリに訪れた人に “このプロジェクトが何なのか” をわかりやすく伝えるための説明書のようなもの。

[ユーザー設定確認方法]
次のサイトを参考。(参考サイト

[Git Cloneの意味]
リポジトリのクローンを作成して、コンピュータ上にローカルコピーを作成し、これらの2つの場所で同期することができる。 GitHub.comにリポジトリを作成した場合、それはリモートリポジトリとなる。 リモートリポジトリをそのまま自分のローカル環境(自分のPC上)へ複製(コピー)する機能。

GitHub.com からローカルコンピューターにリポジトリのクローンを作成して、マージの競合の修正、ファイルの追加または削除、より大きなコミットのプッシュを簡単に行うことができる。 リポジトリのクローンを作成する場合は、リポジトリを GitHub.com からローカルマシンにコピーする。

リポジトリをクローンすると、その時点で GitHub.com にあるすべてのリポジトリデータの完全なコピーがプルダウンされる。 これには、プロジェクトのすべてのファイルとフォルダのすべてのバージョンも含まれる。

[インデックスがなぜ必要か]
インデックスとは、リポジトリに保存されている情報とワークツリー(作業している場所)との差(変更箇所)を記録する場所。 その差(変更箇所)だけをリポジトリに保存していく仕組み

1年前の GitHub を掘り起こしてみた件

・端末を変更していたため、Gut用のディレクトリなどはない
→つまりローカルリポジトリから作製が必要になった。

※リポジトリへの接続設定がないか、念のため確認
git remote -v:他のリポジトリへのリモート接続の一覧を表示するコマンド
→ローカルの情報?

★ローカルのリポジトリ名変更方法
https://qiita.com/youth_case/items/78ac95c62ee4ceec628f

git clone
→リモートリポジトリの環境をローカルにもってくる
git reset HEAD:git add の取り消し
→念のため、git addの取り消しを実施
git add
→変更した内容を加える

*** 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.

→初回扱いであり、必要な情報を以下のように登録していく

git config –global user.email “magata.mnm47@outlook.jp”
git config –global user.name “SMYT”

git commit -a
→Commit処理

【エラー】Aborting commit due to empty commit message.
→初回のコミット時にメッセージがないため

git commit –allow-empty-message -m ”

git push origin mian:main

→成功

$ git checkout -b lecture02
Switched to a new branch ‘lecture02’
→ブランチ lecture02 を作成

$ git branch -a

  • lecture02
    main
    remotes/origin/HEAD -> origin/main
    remotes/origin/main

$ git branch -vv
lecture02 c2c147a

  • main c2c147a [origin/main]

→作成されていることを確認

作成したディレクトリがGitHubに反映されない
→ファイルを中に作成しないと反映されないみたい



ABOUT DIRECTOR
Yumi Suto

人生最初のダッツは抹茶

【取得資格】
・2020/07:ITパスポート
・2021/02:ITIL ver.3
・2021/09:AWS SAA-C02
・2022/06:AWS DVA-C01
・2024/04:AWS SOA-C02
・2025/07:AWS SAP-C02
・2025/08:PL-900
・2025/09:AWS DOP-C02
・2025/11:MLA-C01

error: Content is protected !!