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
Образцы вооружения и техники ВС РФ
obzr
0
110
Utiliser Linkedin pour améliorer son personal branding
martine
0
100
子どものためのプログラミング道場『CoderDojo』〜法人提携例〜 / Partnership with CoderDojo Japan
coderdojojapan
4
14k
地図を活用した関西シビックテック事例紹介
barsaka2
0
100
Use Cases and Course Review - Lecture 8 - Human-Computer Interaction (1023841ANR)
signer
PRO
0
790
The Gender Gap in the Technology Field and Efforts to Address It
codeforeveryone
0
270
(2024) Couper un gâteau... sans connaître le nombre de convives
mansuy
2
160
20241004_Microsoft認定資格のFundamentals全部取ってみた
ponponmikankan
2
370
Da Necessidade da Devoção à Virgem Santíssima
cm_manaus
0
100
Master of Applied Science & Engineering: Computer Science & Master of Science in Applied Informatics
signer
PRO
0
640
XML and Related Technologies - Lecture 7 - Web Technologies (1019888BNR)
signer
PRO
0
2.5k
Medidas en informática
irocho
0
380
Featured
See All Featured
Designing for Performance
lara
604
68k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
28
2.1k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
Git: the NoSQL Database
bkeepers
PRO
427
64k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Gamification - CAS2011
davidbonilla
80
5.1k
Mobile First: as difficult as doing things right
swwweet
222
9k
Unsuck your backbone
ammeep
669
57k
Reflections from 52 weeks, 52 projects
jeffersonlam
347
20k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
Code Review Best Practice
trishagee
65
17k
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ページ)」など数十分の発表では説明できないボリューム