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
87
Gitでソースコード管理
Ryosuke Uchiyama
January 20, 2020
Tweet
Share
More Decks by Ryosuke Uchiyama
See All by Ryosuke Uchiyama
ChatGPT実践
step63r
1
180
深層強化学習で東方AI 第一章 DQNの基本
step63r
0
16
Build 2021 プレイバック
step63r
0
20
WPFで実践アプリ開発! 第四章 機能の実装 Part 2
step63r
0
23
WPFで実践アプリ開発! 第三章 機能の実装 Part 1
step63r
0
77
WPFで実践アプリ開発! 第二章 UI
step63r
0
85
WPFで実践アプリ開発! 第一章 Windowsアプリの歴史
step63r
0
190
数独ではじめるアルゴリズム 第三章 OCR
step63r
0
56
数独ではじめるアルゴリズム 第二章 UI
step63r
0
26
Other Decks in Programming
See All in Programming
Escolhendo (ou não) o melhor ORM para o seu projeto
andreiacsilva
1
140
Findy - エンジニア向け会社紹介 / Findy Letter for Engineers
findyinc
2
74k
教えて!スクラムコーチ品質とスピードのバランスはどうすりゃいいの?
pinboro
0
100
GNU Makeの使い方 / How to use GNU Make
kaityo256
PRO
13
4.3k
Webアプリをできるだけコードを手書きしないで作ってみる
tomokusaba
2
230
TypeScript 関数型スタイルでバックエンド開発のリアル
naoya
49
16k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
0
110
TypeScriptとGraphQLで実現する 型安全なAPI実装 / TSKaigi 2024
hokaccha
5
2.6k
ServerAction で Progressive Enhancement はどこまで頑張れるか? / progressive-enhancement-with-server-action
takefumiyoshii
6
510
Fragment Composition of GraphQL
quramy
14
1.7k
“Seeing Like a Programmer”—Resiliency, Limits, and Moral Hazards in Software Engineering (LambdaConf 2024)
chriskrycho
0
420
RaaP
ksss
0
150
Featured
See All Featured
Building an army of robots
kneath
300
41k
Product Roadmaps are Hard
iamctodd
45
9.8k
A Philosophy of Restraint
colly
197
16k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
67
14k
What the flash - Photography Introduction
edds
64
11k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.1k
A Tale of Four Properties
chriscoyier
153
22k
Why You Should Never Use an ORM
jnunemaker
PRO
51
8.7k
Web Components: a chance to create the future
zenorocha
306
41k
Why Our Code Smells
bkeepers
PRO
331
56k
Making Projects Easy
brettharned
109
5.5k
How GitHub (no longer) Works
holman
305
140k
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