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でソースコード管理
Search
Ryosuke Uchiyama
January 20, 2020
Programming
0
100
Gitでソースコード管理
Ryosuke Uchiyama
January 20, 2020
Tweet
Share
More Decks by Ryosuke Uchiyama
See All by Ryosuke Uchiyama
AWSでサーバレスな書籍管理アプリを作る
step63r
0
16
PythonでSlack通知botを作る
step63r
0
4
ChatGPT実践
step63r
1
290
IoT実践! 行先予定表を電子ペーパーで作る
step63r
0
4
React x Socket.ioで人狼サーバを作る 第一章 フロントエンド実装
step63r
0
3
深層強化学習で東方AI 第一章 DQNの基本
step63r
0
160
Build 2021 プレイバック
step63r
0
27
WPFで実践アプリ開発! 第四章 機能の実装 Part 2
step63r
0
38
WPFで実践アプリ開発! 第三章 機能の実装 Part 1
step63r
0
110
Other Decks in Programming
See All in Programming
List Unfolding - 'unfold' as the Computational Dual of 'fold', and how 'unfold' relates to 'iterate'"
philipschwarz
PRO
0
180
赤裸々に公開。 TSKaigiのオフシーズン
takezoux2
0
110
〜可視化からアクセス制御まで〜 BigQuery×Looker Studioで コスト管理とデータソース認証制御する方法
cuebic9bic
3
320
エラーって何種類あるの?
kajitack
5
120
iOSアプリ開発で 関数型プログラミングを実現する The Composable Architectureの紹介
yimajo
2
200
RubyKaigiで得られる10の価値 〜Ruby話を聞くことだけが RubyKaigiじゃない〜
tomohiko9090
0
140
MLOps Japan 勉強会 #52 - 特徴量を言語を越えて一貫して管理する, 『特徴量ドリブン』な MLOps の実現への試み
taniiicom
2
650
Elixir で IoT 開発、 Nerves なら簡単にできる!?
pojiro
1
110
SODA - FACT BOOK
sodainc
1
790
Agent Rules as Domain Parser
yodakeisuke
1
580
KotlinConf 2025 現地で感じたServer-Side Kotlin
n_takehata
1
180
OpenNext + Hono on Cloudflare でイマドキWeb開発スタックを実現する
rokuosan
0
120
Featured
See All Featured
Designing Experiences People Love
moore
142
24k
Docker and Python
trallard
44
3.4k
How to train your dragon (web standard)
notwaldorf
92
6.1k
Building Applications with DynamoDB
mza
95
6.4k
How to Ace a Technical Interview
jacobian
276
23k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
The Invisible Side of Design
smashingmag
299
50k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
900
Documentation Writing (for coders)
carmenintech
71
4.9k
Statistics for Hackers
jakevdp
799
220k
Side Projects
sachag
454
42k
Optimizing for Happiness
mojombo
379
70k
Transcript
Gitでソースコード管理 Ryosuke Uchiyama
はじめに
None
進捗通知 ストーリー追加 優先順位更新 プロジェクトリーダー 開発チーム 進捗確認 進捗更新 成果物更新 テスト・ビルド デプロイ結果通知
チケット作成 テスト・ビルド依頼 テスト・ビルド デプロイ結果通知 デプロイ
本資料のゴール • Gitとは何かが分かる • ローカルリポジトリを作成できる • 変更をローカルリポジトリにコミットできる • ローカルリポジトリの変更をリモートリポジトリにプッシュできる •
リモートリポジトリの変更をローカルリポジトリにプルできる • プルリクベース開発が何かが分かる
Gitとは
Wikipediaの解説 Git(ギット[2][3][4])は、プログラムのソースコードなどの変更履歴を記録・追跡するための分 散型バージョン管理システムである。Linuxカーネルのソースコード管理に用いるためにリーナス・ トーバルズによって開発され、それ以降ほかの多くのプロジェクトで採用されている。Linuxカーネ ルのような巨大プロジェクトにも対応できるように、動作速度に重点が置かれている。現在のメン テナンスは濱野純 (英語: Junio C Hamano)
が担当している。 Gitでは、各ユーザのワーキングディレクトリに、全履歴を含んだリポジトリの完全な複製が作られ る。したがって、ネットワークにアクセスできないなどの理由で中心リポジトリにアクセスできな い環境でも、履歴の調査や変更の記録といったほとんどの作業を行うことができる。これが「分散 型」と呼ばれる理由である。
Gitとはバージョン管理システムである
バージョン管理システムがないとどうなるか
Gitによるバージョン管理
コミットという単位で変更を管理する 今ココ! 9/1 Aさん:初版作成 9/3 Cさん:◦◦について追記 9/7 Bさん:△△を修正 コミット
全てのPCが完全な履歴を保持している リモートリポジトリ ローカルリポジトリ
リポジトリは複数の履歴の流れを持てる master update bugfix ブランチ
ローカルリポジトリを作成する クローン (clone) $ git clone https://git.minatoproject.com/tsubamesoftware/miyanagipj.git
変更をローカルにコミットする コミット (commit) $ git add –A $ git commit
–m "◦◦を作成"
変更をリモートにプッシュする プッシュ (push) $ git push [–u origin master]
リモートの変更をプルする プル (pull) $ git pull [origin master]
Gitがもっと便利になるプルリク
プルリク(Pull Request)とは • Gitをホスティングするサービスに付随しているコードレビュー機能 • 他者がフォークしたブランチを差分を見てpullすることからこう呼ばれる • GitHubではプルリクエスト、GitLabではマージリクエストという
プルリクベース開発の流れ フォーク
プルリクベース開発の流れ クローン
プルリクベース開発の流れ 作業用ブランチ作成 別の人が更新してたりする
プルリクベース開発の流れ プッシュ ※厳密にはここでAさんのリモートをpullするため競合が発生します
プルリクベース開発の流れ プルリクエスト
プルリクベース開発の流れ 新しいコミット マージ
プルリクエストのメリット • レビュー物件を一覧化できる • Gitの画面上で差分を比較でき、レビュー承認もボタン押下でできる • コード行単位でコメントのやり取りができる • Redmine、Trac、Slack、Jenkins等のツールと連携できる •
マスタリポジトリのmasterブランチを保護することで「レビューを通していな いコードが本番環境に入り込む」が未然に防げる
Demo