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
980
Git -研究室ミーティング2023/12/1資料-
大学の研究室ミーティングで発表担当になったとき、Gitを紹介することにしました。その際に用いた資料の外部公開版です。
(実際に使用したスライドから個人情報、スライドテーマ部分を改変した版)
usuyuki
December 01, 2023
Tweet
Share
More Decks by usuyuki
See All by usuyuki
(予告版)令和でもブログを自宅サーバで @大吉祥寺.pm 2025 前夜祭
usuyuki
1
710
令和でもブログを自宅サーバで@大吉祥寺.pm 2025
usuyuki
1
2.1k
味噌汁作り あるいは仕事の学び
usuyuki
0
1.8k
毎年殺されるPHPとは何か
usuyuki
0
650
新卒1ヶ月半の邁進と変化
usuyuki
1
1.1k
5分で理解するWebAssemblyのWebの外の話 PHPはマイコンの夢を見るか?
usuyuki
3
1.2k
非公式内定者懇親会 LT たのしい企業理念クイズ!
usuyuki
0
1.2k
技育展2023 ブロック予選関東① かどで日記
usuyuki
0
1.1k
サポーターズエンジニア1on1面談イベント10月自己紹介
usuyuki
1
2.4k
Other Decks in Education
See All in Education
卒論の書き方 / Happy Writing
kaityo256
PRO
51
27k
Web Search and SEO - Lecture 10 - Web Technologies (1019888BNR)
signer
PRO
2
3k
AIを使って最新研究 について調べて発表しよ う!
mickey_kubo
4
180
Master of Applied Science & Engineering: Computer Science & Master of Science in Applied Informatics: Artificial Intelligence and Data Science
signer
PRO
0
870
The knowledge panel is your new homepage
bradwetherall
0
220
SJRC 2526
cbtlibrary
0
170
AIは若者の成長機会を奪うのか?
frievea
0
140
JavaScript - Lecture 6 - Web Technologies (1019888BNR)
signer
PRO
0
3.1k
Adobe Express
matleenalaakso
1
8.1k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.1k
Design Guidelines and Models - Lecture 5 - Human-Computer Interaction (1023841ANR)
signer
PRO
0
1.2k
【ZEPメタバース校舎操作ガイド】
ainischool
0
700
Featured
See All Featured
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
120
Documentation Writing (for coders)
carmenintech
77
5.2k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
300
Tell your own story through comics
letsgokoyo
0
770
エンジニアに許された特別な時間の終わり
watany
106
220k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
70k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
Faster Mobile Websites
deanohume
310
31k
Balancing Empowerment & Direction
lara
5
820
Music & Morning Musume
bryan
46
7k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
0
97
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
110
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ページ)」など数十分の発表では説明できないボリューム