SlideShare a Scribd company logo
3
Most read
4
Most read
6
Most read
gitその2
rebaseとrebase -iを理解してgit-flowをやりやすくする
2019/4/9 サイエンスパーク株式会社 須藤
• ID:suusanex( connpass・Twitter・GitHub共通)
• 名前:須藤圭太
• サイエンスパーク株式会社という独立系ソフトウェアベンダーに所属
• 4年ほど受託開発で、上流から下流まで全部を回す
• ここ6年ほどは、自社製品開発を担当
勉強会、今後も開いていきます。
https://sciencepark.connpass.com/
自己紹介
2
• git-flowの説明
• リベースとプルリクで
レビューしやすく
前回の概要
rebase
• rebase を理解すると、プルリクによるレビューがやりやすくなる
• rebase -iを理解すると、ゲームのセーブのようにとにかくコミットし、後で組み合わせ
せられるようになる(画像編集のレイヤ的)
• ※前提、プルリクとは
• 差分をレビューして、OKならすぐマージを実行する機能。
• なので、マージで競合するようなプルリクを出すと面倒。事前に競合が無いかチェッ
クしておくべき。
• リベースは、他の人の変更の後に自分の変更が入ったようにする技
• やっておくと、プルリクのレビュー対象はこの範囲になる
rebaseとは?
before/
after
• マージは、自分の変更の後に他の人の変更が入ったようにする。なので、差分が見づ
らい。(図示)
• どちらもやらないと、他の人の差分を破棄するプルリクになる(図示)
rebase マージではだめか?
マージ どちらもやらない
• コマンドの打ち方 git rebase <リビジョン・ブランチ名>
rebaseのやり方
• rebase -iは自分のブランチ整理
• 並べ替えたりくっつけたりが自由に
コミット1:処理A途中で他のブランチに移るんでコミット
コミット2:処理Bを書いた
コミット3:処理A完成、前書いた分も少し修正
↓
コミット1:処理Aを実装
コミット2:処理Bを実装
rebase -i
• rebase –i(コミット範囲)を打つと、コミット一覧のテキストが開く
• 書き換えると、それが指示になる
• その後、コミットをまとめるたびに新しいテキストが開くので、コミットログを書き
換えて閉じる。
• 競合したら解決して、rebase continueを打つ
rebase -i
pick 5a911c9 処理A途中で他のブランチに移るんでコミット
pick a46bc34d 処理Bを書いた
pick d4e09214 処理A完成、前書いた分も少し修正
pick 5a911c9 処理A途中で他のブランチに移るんでコミット
fixup d4e09214 処理A完成、前書いた分も少し修正
pick a46bc34d 処理Bを書いた
# Commands:
# p, pick <commit> = use commit
# r, reword <commit> = use commit, but edit the commit message
# e, edit <commit> = use commit, but stop for amending
# s, squash <commit> = use commit, but meld into previous commit
# f, fixup <commit> = like "squash", but discard this commit's log message
# x, exec <command> = run command (the rest of the line) using shell
# b, break = stop here (continue rebase later with 'git rebase --continue')
# d, drop <commit> = remove commit
# l, label <label> = label current HEAD with a name
# t, reset <label> = reset HEAD to a label
# m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]
rebase –i ヘルプメッセージ例
• rebaseと言っても2種類ある
• rebaseは、プルリクの重要スキル
• rebase -i は、整理して後で見やすくする
• これが分かると、gitは「完成してからコミットするバージョン管理だけのソフト」か
ら、「作業中に気楽にクイックセーブする便利ソフト」に進化する
• 使いこなしてつまらない作業を減らそう
まとめ
SP1904-E04-01

More Related Content

PDF
Ingressの概要とLoadBalancerとの比較
PDF
Protocol Buffers 入門
PDF
社内ドキュメント検索システム構築のノウハウ
PPTX
Java11へのマイグレーションガイド ~Apache Hadoopの事例~
PDF
マイクロサービスバックエンドAPIのためのRESTとgRPC
PDF
AWS Glueを使った Serverless ETL の実装パターン
PDF
ソフトウェア構成管理入門
PDF
Amazon Redshift 概要 (20分版)
Ingressの概要とLoadBalancerとの比較
Protocol Buffers 入門
社内ドキュメント検索システム構築のノウハウ
Java11へのマイグレーションガイド ~Apache Hadoopの事例~
マイクロサービスバックエンドAPIのためのRESTとgRPC
AWS Glueを使った Serverless ETL の実装パターン
ソフトウェア構成管理入門
Amazon Redshift 概要 (20分版)

What's hot (20)

PPTX
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
PPTX
比較サイトの検索改善(SPA から SSR に変換)
PDF
【15-B-7】無意味なアラートからの脱却 ~ Datadogを使ってモダンなモニタリングを始めよう ~
PDF
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
PDF
TiDBのトランザクション
PDF
【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術
PDF
Python standard 2022 Spring
PDF
Zabbixのパフォーマンスチューニング & インストール時の注意点
PDF
VPCのアウトバウンド通信を制御するためにおさえておきたい設計ポイント
PDF
大規模サービスを支えるネットワークインフラの全貌
PDF
【Unite Tokyo 2019】今すぐ現場で覚えておきたい最適化技法 ~「ゲシュタルト・オーディン」開発における最適化事例~
PDF
プロジェクトマネジメントは仕組み化が9割
PDF
ChatGPTをシステムに組み込むためのプロンプト技法 #chatgptjp
PDF
If文から機械学習への道
PDF
お小遣いでKubernetesクラスタ
PPTX
AWS Organizations連携サービスの罠(Security JAWS 第26回 発表資料)
PDF
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
PDF
Google アナリティクスで SharePointの利用状況を確認する
PDF
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
PDF
[GKE & Spanner 勉強会] GKE 入門
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
比較サイトの検索改善(SPA から SSR に変換)
【15-B-7】無意味なアラートからの脱却 ~ Datadogを使ってモダンなモニタリングを始めよう ~
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
TiDBのトランザクション
【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術
Python standard 2022 Spring
Zabbixのパフォーマンスチューニング & インストール時の注意点
VPCのアウトバウンド通信を制御するためにおさえておきたい設計ポイント
大規模サービスを支えるネットワークインフラの全貌
【Unite Tokyo 2019】今すぐ現場で覚えておきたい最適化技法 ~「ゲシュタルト・オーディン」開発における最適化事例~
プロジェクトマネジメントは仕組み化が9割
ChatGPTをシステムに組み込むためのプロンプト技法 #chatgptjp
If文から機械学習への道
お小遣いでKubernetesクラスタ
AWS Organizations連携サービスの罠(Security JAWS 第26回 発表資料)
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Google アナリティクスで SharePointの利用状況を確認する
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
[GKE & Spanner 勉強会] GKE 入門
Ad

Similar to gitその2 rebaseとrebase -iを理解してgit-flowをやりやすくする (20)

PPTX
git初心者からgit-flowを使えるレベルになって、リリースとレビューを効率化しよう
PDF
GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話
 
PPTX
自社製品のバージョン管理 進化と問題解決の道のり
PDF
130427 kansai-emacs-github
PDF
監視 Overview
 
PPTX
Build insider offline session チームでのgit
PDF
今時のオンプレなgithubクローン環境構築
PDF
新・ReVIEWパーサについて
PDF
Hatena blogdevelopmentflow
PDF
CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウ
PPTX
Git & GitHub & kintone でウルトラハッピー!
PPTX
オープンソースのETLツール Pentaho Data Integration(PDI)のご紹介_20140906
KEY
Yapc2012資料
PPTX
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
PDF
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
PDF
Metahub for github
PPTX
GitHub ActionsでiOSのCIを実現しよう
PDF
gitを使って、レポジトリの一部抽出forkしてみました
PPTX
ビルド職人頼みの自社製品リリースを、CI可能にした取り組み
PPTX
GitLabを骨までしゃぶりつくす@ゆるUniStudy#7
git初心者からgit-flowを使えるレベルになって、リリースとレビューを効率化しよう
GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話
 
自社製品のバージョン管理 進化と問題解決の道のり
130427 kansai-emacs-github
監視 Overview
 
Build insider offline session チームでのgit
今時のオンプレなgithubクローン環境構築
新・ReVIEWパーサについて
Hatena blogdevelopmentflow
CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウ
Git & GitHub & kintone でウルトラハッピー!
オープンソースのETLツール Pentaho Data Integration(PDI)のご紹介_20140906
Yapc2012資料
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
Metahub for github
GitHub ActionsでiOSのCIを実現しよう
gitを使って、レポジトリの一部抽出forkしてみました
ビルド職人頼みの自社製品リリースを、CI可能にした取り組み
GitLabを骨までしゃぶりつくす@ゆるUniStudy#7
Ad

More from Study Group by SciencePark Corp. (20)

PPTX
WPFの画面をWebブラウザのように拡大・縮小に追従させる方法(オートスクロールバー付き)
PPTX
YOLOとご一緒にPandasはいかがですか
PPTX
新入社員の俺がDeepLearningのコードを書いてみたら神検出率だった件
PPTX
.NET CoreでのWindowsサービスの作り方と、Coreならではの便利な機能
PPTX
ドライバへのETWの埋め込み
PPTX
JTAGを使ってみよう
PPTX
初心者向けデバイスドライバ講座(6)
PPTX
ローカルストレージでの永続化キューの方式を本気で比較してみた
PPTX
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
PPTX
02.超初心者向けセキュリティ入門(IoT)
PPTX
06.超初心者向けセキュリティ入門(.netの解析と対策)
PPTX
Visual StudioでWixをビルドしてみた
PPTX
MacOS10.15への対応について
PPTX
Teamsでのリモート勉強会の開き方
PPTX
リモートでの勉強会参加方法
PPTX
初心者向けデバイスドライバ講座 (2)
PPTX
No.2 超初心者向け セキュリティ入門
PPTX
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
PPTX
初心者向けデバイスドライバ講座(1)
WPFの画面をWebブラウザのように拡大・縮小に追従させる方法(オートスクロールバー付き)
YOLOとご一緒にPandasはいかがですか
新入社員の俺がDeepLearningのコードを書いてみたら神検出率だった件
.NET CoreでのWindowsサービスの作り方と、Coreならではの便利な機能
ドライバへのETWの埋め込み
JTAGを使ってみよう
初心者向けデバイスドライバ講座(6)
ローカルストレージでの永続化キューの方式を本気で比較してみた
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
02.超初心者向けセキュリティ入門(IoT)
06.超初心者向けセキュリティ入門(.netの解析と対策)
Visual StudioでWixをビルドしてみた
MacOS10.15への対応について
Teamsでのリモート勉強会の開き方
リモートでの勉強会参加方法
初心者向けデバイスドライバ講座 (2)
No.2 超初心者向け セキュリティ入門
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
初心者向けデバイスドライバ講座(1)

gitその2 rebaseとrebase -iを理解してgit-flowをやりやすくする