GitHub演習
この講義ノートについて
これは、理工学部の三年学部生向けのGit/GitHubを用いたソフトウェア開発演習のための講義ノートである。概ね一般的な記述となっているが、一部に大学のPC室特有の記述があるので、他大の方が利用される際は注意されたい。4回の座学、4回の実習の、計8回の講義/演習で学ぶ構成となっている。
はじめに
座学
バージョン管理とは
- 講義スライド
- バージョン管理システムとは
- バージョン管理システムの歴史
- プログラミングができる人、できない人
Gitの仕組みと用語
- 講義スライド
- プロジェクト
- リポジトリとワーキングツリー
- コミット
- インデックスとステージング
- HEADとブランチ
- マージ
コマンドラインの使い方
- 講義スライド
- シェルとコマンドライン
- Unixコマンド
- Vimの使い方
Gitの基本的な使い方
- 講義スライド
- 初期設定
- Gitの一連の操作
git init
git add
git commit
git diff
git log
git config
.gitignore
ブランチ操作
- 講義スライド
- なぜブランチを分けるか
- ブランチの基本
- マージ
- リベース
リモートリポジトリの操作
- 講義スライド
- リモートリポジトリとは
- ベアリポジトリ
- クローン
- プッシュ
- フェッチ
- 上流ブランチとリモート追跡ブランチ
- その他知っておいた方が良いこと
git remote
git pull
- プッシュしたブランチをリベースしない
Gitの使い方(応用編)
- 講義スライド
- Gitトラブルシューティング
- コミットメッセージを間違えた(
git commit --amend
) - 修正を取り消したい(
git restore
) - ステージングを取り消したい(
git restore --staged
) git checkout
は使わない- リモートを間違えて登録した(
git remote remove
) - メインブランチで作業を開始してしまった(
git stash
) - プッシュしようとしたらリジェクトされた
- 頭が取れた(
detached HEAD
) - リベースしようとしたら衝突した
- コミットメッセージを間違えた(
- その他の便利なコマンド
- この部分はいつ誰が書いた?(
git blame
) - このバグが入ったのはいつだ?(
git bisect
)
- この部分はいつ誰が書いた?(
Gitの中身
- 講義スライド
.git
ディレクトリの中身- Gitのオブジェクト
- blobオブジェクト
- コミットオブジェクト
- treeオブジェクト
- Gitの参照
- HEADとブランチの実体
- Detached HEAD状態
- ブランチの作成と削除
- リモートブランチと上流ブランチ
- インデックス
- インデックスの実体と中身
- ブランチ切り替えとインデックス
演習
Gitの操作(基本編)
- 講義スライド
- 初期設定
- リポジトリの作成(
git init
) - インデックスへの追加(
git add
) - ファイルの修正
- 自動ステージング(
git commit -a
) - 歴史の確認(
git log
) - VSCodeからの操作
- 余談:データベース"ふっとばし"スペシャリスト
Gitの操作(応用編)
- 講義スライド
git amend
によりコミットが変更されることを確認するgit merge
の衝突を解決するgit rebase
により歴史を改変するgit rebase
の衝突を解決するgit bisect
を使ってみる- 余談:OSの系譜とドラマ
GitHubの操作(基本編)
- 講義スライド
- GitHubアカウントを作成とSSH接続
- ローカルのリポジトリをGitHubに登録
- Issue管理
- Projectの利用
- プルリクエストを作ってみる
- 余談:天空の城のセキュリティ
GitHubの操作(応用編)
- 講義スライド
- MNISTの学習済みモデルをウェブで試す
- 簡単なゲーム作成
- 余談:CEOからのメッセージ
おわりに
参考文献
ライセンス
Copyright (C) 2021-present Hiroshi Watanabe
この文章と絵(pptxファイルを含む)はクリエイティブ・コモンズ 4.0 表示 (CC-BY 4.0)で提供する。