550 Views
December 11, 24
スライド概要
2024/12/11のDeep Learning Study Group資料
AI-Driven University Student
Ryota Murai | 2024/12/11 入門 GIT GITHUB
GitとGitHub Git バージョン管理ツール ソースコードの履歴管理を行なう GitHub Gitを基盤としたWebサービス Gitを用いたプロジェクトの公開・ コラボレーションの促進を担う
Gitとは プログラムの状態をセーブできるツール 以前の状態にいつでも戻せる いつ、誰が、どんな変更を行ったか記録できる セーブデータ1 20xx年xx月xx日 ゲームのセーブデータに似ている セーブデータ2 20xx年xx月xx日 セーブデータ3 20xx年xx月xx日
バージョン管理システムがない世界 無秩序な命名による混乱 model.py model_v2.py model_v2_fix.py model_v2_latest.py model_v2_1.py
バージョン管理システムがない世界 共同開発が困難 ド ー ロ ン ウ 集 ダ 編 yを pyを p . l. el e d od mo m . 1 3. 共有フォルダ 2. mo de l.p 4. yを mo ダ de ウ l.p ン yを ロ ー 編 ド 集 Aさんの編集内容は消滅 Aさん Bさん
バージョン管理システムがある世界 正 修 を 加 グ 加 追 バ 追 を の を B A A 能 能 能 機 機 機 model.py 加 追 を C 能 機
バージョン管理システムがある世界 競合発生 Aさん Bさん model.pyに機能Aを追加 変更履歴をもとに どちらを残すのか どちらの変更も尊重するのか などを制御できるようになる! model.pyに機能Bを追加
バージョン管理システムがある世界 Stack Overflow Developer Survey 2022 https://survey.stackoverflow.co/2022/#version-control-version-control-system-prof
Gitをもう少し詳しく 正 修 を 加 グ 加 追 バ 追 を の を B A A 能 能 能 機 機 機 加 追 を C 能 機
Gitをもう少し詳しく 正 修 を 加 グ 加 追 バ 追 を の を B A A 能 能 能 機 機 機 加 追 を C 能 機 変更を「コミット」という 変更を加える→コミットする→変更を加える→…
Gitをもう少し詳しく 機能Aを追加 機能Bを追加 mainブランチ 機能Aの開発 機能Bの開発 機能Cの修正 それぞれの時系列を「ブランチ」と呼ぶ
Gitをもう少し詳しく 機能Aを追加 機能Bを追加 mainブランチ Aさん Bさん 機能Aの開発 機能Bの開発 機能Cの修正 多人数での並行作業を可能に
Gitをもう少し詳しく 一人の開発者のPCのみにあると 共同開発ができない Aさん Bさん Cさん
Gitをもう少し詳しく コピー コピー Aさん コピー Bさん Cさん
Gitをもう少し詳しく リモートリポジトリ ローカルリポジトリ Aさん Bさん Cさん
Gitをもう少し詳しく コピーを作る =「クローン」 Aさん Bさん Cさん
Gitをもう少し詳しく ブランチを作って 変更をコミットする Aさん Bさん Cさん
Gitをもう少し詳しく 変更をリモートリポジトリに反映 = 「プッシュ」 Aさん Bさん Cさん
Gitをもう少し詳しく 変更をmainブランチに取り込む = 「マージ」 Aさん 個人開発では、ローカルでマージしてからプッシュすることも可能です Bさん Cさん
Gitをもう少し詳しく リモートリポジトリの変更を ローカルリポジトリに反映 = 「プル」 Aさん この一連の流れは「GitHub Flow」と呼ばれるスタイルです Bさん Cさん
Gitをもう少し詳しく リモートリポジトリ部分を担うWebサービス など
GitHub GitHubリポジトリの機能(一部)
GitHub プロジェクトの課題 を報告・管理 タスク管理
GitHub https://github.com/tpu-dsg/git-hands-on/issues/12
GitHub https://github.com/orgs/tpu-dsg/projects/1
GitHub マージ前の レビューなど
GitHub https://github.com/tpu-dsg/git-hands-on/pull/4
GitHub 学生・教員向けのGitHub Education GitHub Copilotが無料 その他学生向けに手厚いサービス https://education.github.com/pack
実際にやってみる https://github.com/tpu-dsg/git-hands-on リポジトリをフォークする (書き込み権限をもたないので) クローンする ブランチを作ってコミットする プッシュする プルリクエストを作る