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
900
Git -研究室ミーティング2023/12/1資料-
大学の研究室ミーティングで発表担当になったとき、Gitを紹介することにしました。その際に用いた資料の外部公開版です。
(実際に使用したスライドから個人情報、スライドテーマ部分を改変した版)
usuyuki
December 01, 2023
Tweet
Share
More Decks by usuyuki
See All by usuyuki
(予告版)令和でもブログを自宅サーバで @大吉祥寺.pm 2025 前夜祭
usuyuki
1
550
令和でもブログを自宅サーバで@大吉祥寺.pm 2025
usuyuki
1
1.6k
味噌汁作り あるいは仕事の学び
usuyuki
0
1.5k
毎年殺されるPHPとは何か
usuyuki
0
570
新卒1ヶ月半の邁進と変化
usuyuki
1
1k
5分で理解するWebAssemblyのWebの外の話 PHPはマイコンの夢を見るか?
usuyuki
3
1.1k
非公式内定者懇親会 LT たのしい企業理念クイズ!
usuyuki
0
1.1k
技育展2023 ブロック予選関東① かどで日記
usuyuki
0
1k
サポーターズエンジニア1on1面談イベント10月自己紹介
usuyuki
0
2.2k
Other Decks in Education
See All in Education
小学校女性教員向け プログラミング教育研修プログラム「SteP」の実践と課題
codeforeveryone
0
130
2025年度春学期 統計学 第14回 分布についての仮説を検証する ー 仮説検定(1) (2025. 7. 10)
akiraasano
PRO
0
150
Présentation_1ère_Spé_2025.pdf
bernhardsvt
0
380
2026 g0v 零時政府年會啟動提案 / g0v Summit 2026 Kickstart
rschiang
0
320
仏教の源流からの奈良県中南和_奈良まほろば館‗飛鳥・藤原DAO/asuka-fujiwara_Saraswati
tkimura12
0
130
『会社を知ってもらう』から『安心して活躍してもらう』までの プロセスとフロー
sasakendayo
0
260
ハッカソンを活用したモノづくり教育について
yusk1450
PRO
2
100
SISTEMA DE MEMORIA Y SU IMPACTO EN LAS DECISIONES.
jvpcubias
0
170
令和政経義塾第2期説明会
nxji
0
220
”育てる”から”育つ”仕組みへ!スクラムによる新入社員教育
arapon
0
150
EVOLUCIÓN DE LAS NEUROCIENCIAS EN LOS CONTEXTOS ORGANIZACIONALES
jvpcubias
0
180
理想の英語力に一直線!最高効率な英語学習のすゝめ
logica0419
6
410
Featured
See All Featured
RailsConf 2023
tenderlove
30
1.2k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.1k
A better future with KSS
kneath
239
17k
Designing for Performance
lara
610
69k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.2k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
114
20k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Thoughts on Productivity
jonyablonski
70
4.8k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
Agile that works and the tools we love
rasmusluckow
330
21k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
Bash Introduction
62gerente
615
210k
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ページ)」など数十分の発表では説明できないボリューム