Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Git -研究室ミーティング2023/12/1資料-
Search
usuyuki
December 01, 2023
Education
0
520
Git -研究室ミーティング2023/12/1資料-
大学の研究室ミーティングで発表担当になったとき、Gitを紹介することにしました。その際に用いた資料の外部公開版です。
(実際に使用したスライドから個人情報、スライドテーマ部分を改変した版)
usuyuki
December 01, 2023
Tweet
Share
More Decks by usuyuki
See All by usuyuki
毎年殺されるPHPとは何か
usuyuki
0
180
新卒1ヶ月半の邁進と変化
usuyuki
1
540
5分で理解するWebAssemblyのWebの外の話 PHPはマイコンの夢を見るか?
usuyuki
3
640
非公式内定者懇親会 LT たのしい企業理念クイズ!
usuyuki
0
640
技育展2023 ブロック予選関東① かどで日記
usuyuki
0
650
サポーターズエンジニア1on1面談イベント10月自己紹介
usuyuki
0
1.7k
U-lab定期LT10月 古代技術と現代技術の融合VSCodeVimのススメ
usuyuki
0
1.2k
PHPerと就活
usuyuki
0
1.2k
技育CAMP vol.5 発表スライド(うすゆき_むすびねる)
usuyuki
0
1.1k
Other Decks in Education
See All in Education
【COPILOT無料セミナー】エンゲージメントと自律性の高いプロジェクト型人材育成に向けて~プロジェクト・ベースド・ラーニング(PBL)という選択肢~
copilot
PRO
0
190
Carving the Way to Ruby Engineering
koic
3
440
Comezando coas redes
irocho
0
400
Use Cases and Course Review - Lecture 8 - Human-Computer Interaction (1023841ANR)
signer
PRO
0
780
認知情報科学科_キャリアデザイン_大学院の紹介
yuyakurodou
0
140
1216
cbtlibrary
0
240
Master of Applied Science & Engineering: Computer Science & Master of Science in Applied Informatics
signer
PRO
0
640
自分にあった読書方法を探索するワークショップ / Reading Catalog Workshop
aki_moon
0
210
HP用_松尾研紹介資料.pdf
matsuolab
0
280
地図を活用した関西シビックテック事例紹介
barsaka2
0
100
勉強する必要ある?
mineo_matsuya
2
2.3k
1106
cbtlibrary
0
430
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Building Applications with DynamoDB
mza
91
6.1k
The Cult of Friendly URLs
andyhume
78
6.1k
Testing 201, or: Great Expectations
jmmastey
40
7.1k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.9k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
RailsConf 2023
tenderlove
29
940
XXLCSS - How to scale CSS and keep your sanity
sugarenia
247
1.3M
Building Better People: How to give real-time feedback that sticks.
wjessup
365
19k
How GitHub (no longer) Works
holman
311
140k
Faster Mobile Websites
deanohume
305
30k
Transcript
宇都宮大学 工学部 4年 usuyuki
研究室ミーティング 12/1 2023/12/1 2
研究室ミーティング 12/1 2023/12/1 3
研究室ミーティング 12/1 2023/12/1 4 2023/12/1 研究室ミーティング 12/1 4 意義 Gitを使うことでの旨みを知る
Gitの基本的な使用方法を知る 本発表の目的 研究体験の向上へ
研究室ミーティング 12/1 2023/12/1 5 2023/12/1 研究室ミーティング 12/1 5 意義 Gitとは
分散バージョン管理システム
研究室ミーティング 12/1 2023/12/1 6 2023/12/1 6 意義 分散バージョン管理システム 作者 :
Linus Torvalds Linux Kernelの開発で使用するために開発 (BitKeeper問題) Linus Torvaldsの写真 著作者:Krd CC 表示-継承 4.0 https://commons.wikimedia.org/wiki/File:LinuxCon_Europe_Lin us_Torvalds_03.jpgによる Gitとは
研究室ミーティング 12/1 2023/12/1 7 2023/12/1 研究室ミーティング 12/1 7 意義 分散バージョン管理システム
GitHubはGitリポジトリの ホスティングプラットフォーム 作者 : Linus Torvalds Linux Kernelの開発で使用するために開発 (BitKeeper問題) Linus Torvaldsの写真 著作者:Krd CC 表示-継承 4.0 https://commons.wikimedia.org/wiki/File:LinuxCon_Europe_Lin us_Torvalds_03.jpgによる Gitとは
研究室ミーティング 12/1 2023/12/1 8 2023/12/1 研究室ミーティング 12/1 8 研究日誌でのGitとの向き合い方、あってる? 研究日誌もGitで管理されている
研究室ミーティング 12/1 2023/12/1 9 2023/12/1 研究室ミーティング 12/1 9 研究日誌でのGitとの向き合い方、あってる? •
空白1つ消してコミット • 1行だけ書いてコミット 普通に保存する感覚でcommitしてませんか?
研究室ミーティング 12/1 2023/12/1 10 2023/12/1 研究室ミーティング 12/1 10 Gitを理解するモチベーション 開発体験が様変わりする
様々な場所で役立つ (就職にも有利) 失敗が怖くなくなる バックアップの呪縛から開放される 趣味の開発から研究、論文執筆まで 就業形インターンではGit使える前提が多い GitHub選考通りやすくなる
研究室ミーティング 12/1 2023/12/1 11 2023/12/1 研究室ミーティング 12/1 11 Gitを理解するモチベーション 一度手にしたらやめられない便利さ
「Gitは文明」 個人の感想
研究室ミーティング 12/1 2023/12/1 12
研究室ミーティング 12/1 2023/12/1 13 2023/12/1 研究室ミーティング 12/1 13 Gitができること 最初に、Gitができることを説明
(普段の使い方は後ほど)
研究室ミーティング 12/1 2023/12/1 14 2023/12/1 研究室ミーティング 12/1 14 Gitができること 先に結論
プログラム開発に時間軸を導入 共同作業での事故防止
研究室ミーティング 12/1 2023/12/1 15 2023/12/1 研究室ミーティング 12/1 15 Gitができること プログラム開発に時間軸を導入
時間軸の移動
研究室ミーティング 12/1 2023/12/1 16 2023/12/1 研究室ミーティング 12/1 16 時間軸の移動 Gitのコミット
≈ ゲームにおけるセーブ 新しい機能XXを追加 バグYYを修正 新しい機能ZZを追加 master
研究室ミーティング 12/1 2023/12/1 17 2023/12/1 研究室ミーティング 12/1 17 時間軸の移動 Gitのコミット
≈ ゲームにおけるセーブ 新しい機能XXを追加 バグYYを修正 新しい機能ZZを追加 hash branch commit message master HEAD いつ誰がどこを変更したかも記録される 7b07422b ebbf8a85 a74e9ce9
研究室ミーティング 12/1 2023/12/1 18 2023/12/1 研究室ミーティング 12/1 18 時間軸の移動 研究日誌のgit
log
研究室ミーティング 12/1 2023/12/1 19 2023/12/1 研究室ミーティング 12/1 19 こんな時間移動ができる! 特定の位置との比較
このコミットとこのコミット、どこが変わったの? git diff ブランチ単位での比較、改行無視などいろいろできる
研究室ミーティング 12/1 2023/12/1 20 2023/12/1 研究室ミーティング 12/1 20 こんな時間移動ができる! この行の変更、いつ誰がした?
このパラメータ、なんでこの値にしたんだっけ?
研究室ミーティング 12/1 2023/12/1 21 2023/12/1 研究室ミーティング 12/1 21 こんな時間移動ができる! 過去の設定ファイルを現代に召喚
2年前のあの日の設定ファイルを蘇らせたい…… git checkout commit_hash --- file_path
研究室ミーティング 12/1 2023/12/1 22 2023/12/1 研究室ミーティング 12/1 22 こんな時間移動ができる! 過去の設定ファイルを現代に召喚
2年前のあの日の設定ファイルを蘇らせたい…… git checkout commit_hash --- file_path
研究室ミーティング 12/1 2023/12/1 23 2023/12/1 研究室ミーティング 12/1 23 こんな時間移動ができる! 特定のコミットまでやり直す
新しく機能追加したけど、やっぱりやめたい 「その先に」の章では、過去改変についても紹介 git reset git revert
研究室ミーティング 12/1 2023/12/1 24 2023/12/1 研究室ミーティング 12/1 24 時間移動のために… こんな便利なGitですが……
これはcommitあってのもの
研究室ミーティング 12/1 2023/12/1 25 2023/12/1 研究室ミーティング 12/1 25 時間移動のために… コミットメッセージとコミット単位が大事
研究室ミーティング 12/1 2023/12/1 26 2023/12/1 研究室ミーティング 12/1 26 時間移動のために… prefixつけると見返しやすい
commitを積む = コードの物語を紡いでいく
研究室ミーティング 12/1 2023/12/1 27 2023/12/1 研究室ミーティング 12/1 27 Gitができること プログラム開発に時間軸を導入
世界線の変更
研究室ミーティング 12/1 2023/12/1 28 2023/12/1 研究室ミーティング 12/1 28 世界線の変更 Gitのブランチ
≈ タイムリープものにおける世界線 新しい機能XXの interface追加 mainブランチ 新しい機能XXの メソッド追加 新しい機能XXの テスト追加 feat/xxブランチ
研究室ミーティング 12/1 2023/12/1 29 2023/12/1 研究室ミーティング 12/1 29 未来の確定 機能をまとまった単位で用意して、mainにマージ
新しい機能XXの interface追加 mainブランチ 新しい機能XXの メソッド追加 Merge 新しい機能XXの テスト追加 feat/xxブランチ
研究室ミーティング 12/1 2023/12/1 30 2023/12/1 研究室ミーティング 12/1 30 研究での実例 ライブラリを用いた
多言語対応 GUIのレイアウト 仮組み実装 GitHub Actionsによる 自動ビルド実装 feat/base-styleブランチ feat/i18nブランチ feat/releaseブランチ
研究室ミーティング 12/1 2023/12/1 31 2023/12/1 研究室ミーティング 12/1 31 Gitができること 共同作業での事故防止
Pull Request(GitHubの機能)
研究室ミーティング 12/1 2023/12/1 32 2023/12/1 研究室ミーティング 12/1 32 Pull Request
Pull Request(PR) : メインのブランチへのマージ依頼 新しい機能XXの interface追加 mainブランチ 新しい機能XXの メソッド追加 Merge 新しい機能XXの テスト追加 feat/xxブランチ
研究室ミーティング 12/1 2023/12/1 33 2023/12/1 研究室ミーティング 12/1 33 Pull Request
実際の企業での使用例
研究室ミーティング 12/1 2023/12/1 34 2023/12/1 研究室ミーティング 12/1 34 Pull Request
実際の企業での使用例
研究室ミーティング 12/1 2023/12/1 35 2023/12/1 研究室ミーティング 12/1 35 Gitができること 共同作業での事故防止
コンフリクト解消
研究室ミーティング 12/1 2023/12/1 36 2023/12/1 研究室ミーティング 12/1 36 コンフリクト 機能をまとまった単位で用意して、mainにマージ
新しい機能XXの interface追加 mainブランチ 新しい機能XXの メソッド追加 Merge 新しい機能XXの テスト追加 feat/xxブランチ fix/yyブランチ Merge
研究室ミーティング 12/1 2023/12/1 37
研究室ミーティング 12/1 2023/12/1 38 2023/12/1 研究室ミーティング 12/1 38 研究日誌の場合 まとまった単位でコミット
その日の変更全体など
研究室ミーティング 12/1 2023/12/1 39 2023/12/1 研究室ミーティング 12/1 39 4つのステップ 単語だけでは分かりにくいので
実際の操作をデモする untrack stage commit remote
研究室ミーティング 12/1 2023/12/1 40 2023/12/1 研究室ミーティング 12/1 40 ブランチ・PR・マージ 研究日誌では使わないが、共同開発では必須
研究室ミーティング 12/1 2023/12/1 41
研究室ミーティング 12/1 2023/12/1 42 2023/12/1 研究室ミーティング 12/1 42 Gitでできることは他にも様々 •
commit履歴の一部を改変(rebase) • 複数のcommitを1つに合体(squash) • 特定のコミットを他のブランチで使う(cherry-pick) • git resetを取り消す(reflog, reset)
研究室ミーティング 12/1 2023/12/1 43 2023/12/1 研究室ミーティング 12/1 43 GitHubを用いた快適開発 ブランチ切って機能追加して
PR→レビュー・CI→マージ・CD マージ前にコードの解析(CI) 自動でアプリをビルド(CD)
研究室ミーティング 12/1 2023/12/1 44 2023/12/1 研究室ミーティング 12/1 44 GitHubに草を生やす
研究室ミーティング 12/1 2023/12/1 45 2023/12/1 研究室ミーティング 12/1 45 終わり Gitを使って快適安全な開発・研究を!!!
書籍「独習Git(443ページ)」など数十分の発表では説明できないボリューム