狠狠撸

狠狠撸Share a Scribd company logo
Git & GitHub & kintone で
      ウルトラハッピー!
     サイボウズ株式会社 山本泰宇
         @ymmt2005




                     ? 2012 Cybozu. All rights reserved.
どんな人にうれしい話?

ブランチ管理が地獄のよう      ? Git なら素早く解決!
  だと悩んでいる人        ? ブランチ & マージは日常作業になります


Fisheye? + Crucible?
                     ? GitHub は速いしメンテナンスも楽々
    に悩んでいる人



Git やってみたいけど、きっ
                  ? Hazama のノウハウ集、共有します!
   かけがつかめない人

              ※Fisheye, Atlassian Crucible は Atlassian の商標です
              ※Hazama は cybozu.com のインフラツール開発チームです
cybozu.com 運用管理ツール

           ? ストレージ管理

データセンター用   ? VM管理
           ? 各種モニタリング




           ? 深刻な問題が発生すれば即改修が必要
頻繁なリリース    ? 依存関係の都合でリリース期日指定も良くある




           ? 開発環境(試験用)
 環境が二つ     ? 運用環境(試験済み)
开発の流れ




                開発DCでQA試験
?設計レビュー                     ?試験済み、かつ
?実装レビュー&修正   ?開発環境用に結合      ?リリース可のコードを適用

             ?バグが混じり、不安定    ?週に何回も適用することも

             ?検出不具合を追加修正


      各自開発                      運用DCに適用
Subversion時代: 不幸のどん底

? trunk に直接コミット
 ? ブランチ作成は遅すぎて滅多にしない
   (作った後のチェックアウトが遅い)
? 安定版を作るには
 1. ブランチを作成
 2. 未試験のコミットをリバースマージ
? 問題点
 ? コミットログの精査が人力
 ? 後回しにすると、ますます辛い
? 安定版ブランチを持つ?
 ? 目でログを探す点は変わらない
 ? マージしていないコミットの管理が辛い
解決したい問題

ブランチ作成の高速化       ? 個々のタスクごとにブランチを作成したい(トピックブランチ)



                 ? 一度マージした後、追加の改修を再度マージ
マージを繰り返したい       ? 親ブランチの変更を取り込み後、親ブランチに再度マージ


                 ? まだマージしていないコミットを自動検出したい
マージを楽にしたい        ? 特定のコミットをすばやくマージしたい



Subversion が遅い   ? 日々のストレスにもう耐えられません
Gitで解決! その理由

手元にレポジトリ    ? ブランチ作成やマージはすべてローカル操作

 が丸ごとある     ? だから高速!


リモートレポジトリ   ? 日々の作業は極めて高速

 とは差分更新     ? 初回のクローンだけ遅い


コミット履歴は     ? Git のブランチ=分岐したグラフの枝

 グラフ管理      ? Git のマージ=二つの枝の合流
Git vs. Mercurial

Git のほうが強力で、速くて、省スペースで、難しい
? 慣れれば Git の利点が大きい

GitHub が便利すぎる
? これから解説します ?

Linux カーネルとその周辺が Git 管理
? Hazama は良く Linux の不具合追うので…

というのは私だけの意見じゃないですよ!
? Why did Git get so much hype? …while others don't?
? Git, Mercurial and Bazaar – A Comparison
GitHub Enterprise

   Git だけでサイボウズの開発はまわらない
   ? コードレビューどうする?
   ? レポジトリ管理?アクセスコントロールは?
   ? 共有レポジトリは誰が管理するの?




        そこで   GitHub Enterprise
        ? github.com を仮想アプライアンスで社内運用
        ? 1ユーザー年間2万円くらい
GitHub いいよ!

? GitHub = Gitレポジトリ管理 + レビューツール
 ?   ユーザーが自由にレポジトリを作れる!
 ?   Fisheye? + Atlassian Crucible? より速い
 ?   Fisheye? + Atlassian Crucible? より落ちない
 ?   Fisheye? + Atlassian Crucible? よりメンテナンスが楽
 ?   おまけに Wiki と Gist もついてくる
? Wiki 便利
 ? Gitレポジトリになっているので、テキストエディタで編集が可能
 ? 編集がコンフリクトしてもうまくマージできるよ ?
? Issues はしょぼい
 ? kintone と連携すれば最強
                       ※kintone は cybozu.com のアプリ作成ツール
                        Hazama の開発タスク管理にも使っています
PULLリクエスト駆動開発

? PULLリクエスト
 ?   レビュー&マージツール
 ?   よそのプロジェクトにパッチ投げることもできる
 ?   レビュー OK ならボタン一発でブランチをマージ
 ?   死ぬほど便利なので、PULLリクエスト中心にワークフローは考えよう!

? ワークフローの例                   ここが肝
 1.   タスクごとにトピックブランチを作る
 2.   PULLリクエストを投げてレビューしてもらう
 3.   指摘事項を修正してトピックブランチにPUSH
 4.   PULLリクエストの中身が更新されるので、再レビュー
 5.   レビューOKならレビュワーがボタンクリックでマージ&クローズ!
导入后のワークフロー

            PULLリクエスト    開発レポジトリ       PULLリクエスト   安定レポジトリ
 トピックブランチ
                        hazama/infra               forest/infra


                        開発DCでQA試験
?設計レビュー                                     ?試験済み、かつ
?実装レビュー&修正w        ?開発環境用に結合                ?リリース可のコードを適用

                   ?バグが混じり、不安定              ?週に何回も適用することも

                   ?検出不具合を追加修正


      各自開発                                         運用DCに適用
言うは易しだが???

            ? hazama/infra は Hazama 開発チーム管理
管理権限を分離     ? forest/infra は運用チーム管理




二つのレポジトリを   ? 試験が終わるまでは hazama/infra にマージ

意識する必要あり    ? 試験終了後は forest/infra にマージ




開発完了の順に     ? リリースするべきものだけを chrry-pick
            ? うまくやらないと、意図しない hazama のコミットが紛れ込む
試験完了はしない    ? トピックブランチから必要なコミットを自動的に抜き出したい
行うは难し

            $ git clone github:hazama/infra
管理権限を分離     $ git remote add stable github:forest/infra
            $ git fetch stable



二つのレポジトリを   $ git fetch origin
            $ git checkout –b INFRA-xx origin/master
意識する必要あり    $ git push origin INFRA-xx


            $ git fetch stable

開発完了の順に     $ git checkout –b INFRA-xx-forest stable/master
            $ git fetch origin
            $ BRANCH_ORIG=$(複雑なコマンド)

試験完了はしない    $ git cherry-pick --first-parent --no-merges $BRANCH_ORIG..origin/INFRA-xx
            $ (コンフリクト修正)
            $ git push origin INFRA-xx-forest
hazama tools でウルトラハッピー!


git-hazama 拡張コマンド

kintone API クライアント

github v3 API クライアント

github-kintone 連携 Chrome 拡張

             GitHub で公開してます!
             https://github.com/ymmt2005/hazama-tools
git hazama でこうなる!

            $ git hazama setup infra
管理権限を分離      (clone して remote 追加)



            $ git hazama dev
二つのレポジトリを     ….
            $ git hazama review dev TICKET
意識する必要あり    (トピックブランチ作成, PUSH, PULLリク作成, kintone 更新)




            $ git hazama pick TICKET
開発完了の順に       (必要なコミットを自動 cherry-pick)
            $ git hazama stage TICKET
試験完了はしない      (forest/infra へのPULLリク作成, kintone 更新)
GitHub ? kintone 連携

        ← Chrome 拡張でチケットに自動リンク




         ↑ git hazama が PULL リク自動記載
Git に乗り換えるには?

 Hazama謹製       ? 要望あれば公開検討します!

  チュートリアル       ? @ymmt2005 までどうぞ


                ? git svn のラッパー
   svn2git
                ? 関連の薄いモジュールのレポジトリは分割インポートがお勧め



GitHub アカウント    ? サインアップしてご自由にどうぞ



                ? 「コミットグラフ」の意味がわかるくらいでないと厳しい
一人は慣れていること
                ? 各チーム一人は、隠れ Git ユーザーがいるでしょう ?
Good Luck!

More Related Content

What's hot (20)

もしWordPressユーザーがGitを使ったら ?WordPressテーマを共同編集しよう?
もしWordPressユーザーがGitを使ったら ?WordPressテーマを共同編集しよう?もしWordPressユーザーがGitを使ったら ?WordPressテーマを共同編集しよう?
もしWordPressユーザーがGitを使ったら ?WordPressテーマを共同編集しよう?
Takashi Uemura
?
これからはじめるインフラエンジニア
これからはじめるインフラエンジニアこれからはじめるインフラエンジニア
これからはじめるインフラエンジニア
外道 父
?
逆説のスタートアップ思考的「逆张りワークショップ」手顺书
逆説のスタートアップ思考的「逆张りワークショップ」手顺书逆説のスタートアップ思考的「逆张りワークショップ」手顺书
逆説のスタートアップ思考的「逆张りワークショップ」手顺书
Takaaki Umada
?
あなたのスタートアップのアイデアの育てかた
あなたのスタートアップのアイデアの育てかたあなたのスタートアップのアイデアの育てかた
あなたのスタートアップのアイデアの育てかた
Takaaki Umada
?
いつも働きすぎの CEO におくる、スタートアップの成功のための心と体の健康管理入門
いつも働きすぎの CEO におくる、スタートアップの成功のための心と体の健康管理入門いつも働きすぎの CEO におくる、スタートアップの成功のための心と体の健康管理入門
いつも働きすぎの CEO におくる、スタートアップの成功のための心と体の健康管理入門
Takaaki Umada
?
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
土岐 孝平
?
心理的安全性の構造 デブサミ2019夏 structure of psychological safety
心理的安全性の構造 デブサミ2019夏 structure of psychological safety心理的安全性の構造 デブサミ2019夏 structure of psychological safety
心理的安全性の構造 デブサミ2019夏 structure of psychological safety
Tokoroten Nakayama
?
ピッチをする前に知っておきたかったこと スタートアップの资金调达
ピッチをする前に知っておきたかったこと スタートアップの资金调达ピッチをする前に知っておきたかったこと スタートアップの资金调达
ピッチをする前に知っておきたかったこと スタートアップの资金调达
Takaaki Umada
?
経営のアジリティを支える顿别惫翱辫蝉と组织
経営のアジリティを支える顿别惫翱辫蝉と组织経営のアジリティを支える顿别惫翱辫蝉と组织
経営のアジリティを支える顿别惫翱辫蝉と组织
Recruit Technologies
?
滨辞肠コンテナについて
滨辞肠コンテナについて滨辞肠コンテナについて
滨辞肠コンテナについて
Akio Terayama
?
日経BPリーン式創業塾 #leanstartup #リーンスタートアップ
日経BPリーン式創業塾 #leanstartup #リーンスタートアップ日経BPリーン式創業塾 #leanstartup #リーンスタートアップ
日経BPリーン式創業塾 #leanstartup #リーンスタートアップ
Itsuki Kuroda
?
君にグロースハックはいらない
君にグロースハックはいらない君にグロースハックはいらない
君にグロースハックはいらない
Takaaki Umada
?
スタートアップは行动しない / フォーカス、ツール、オペレーションについて
スタートアップは行动しない / フォーカス、ツール、オペレーションについてスタートアップは行动しない / フォーカス、ツール、オペレーションについて
スタートアップは行动しない / フォーカス、ツール、オペレーションについて
Takaaki Umada
?
やはり俺のスタートアップの意思决定はまちがっている。
やはり俺のスタートアップの意思决定はまちがっている。やはり俺のスタートアップの意思决定はまちがっている。
やはり俺のスタートアップの意思决定はまちがっている。
Takaaki Umada
?
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
Tokoroten Nakayama
?
よく聞くけど、「SharePoint リストの 5,000 件問題」ってなんなの?
よく聞くけど、「SharePoint リストの 5,000 件問題」ってなんなの?よく聞くけど、「SharePoint リストの 5,000 件問題」ってなんなの?
よく聞くけど、「SharePoint リストの 5,000 件問題」ってなんなの?
Hirofumi Ota
?
データマイニングの话詰め合わせ
データマイニングの话詰め合わせデータマイニングの话詰め合わせ
データマイニングの话詰め合わせ
Tokoroten Nakayama
?
コミュニティデザインの思考 / これから始めるコミュニティマネジメント入門 (2)
コミュニティデザインの思考 / これから始めるコミュニティマネジメント入門 (2)コミュニティデザインの思考 / これから始めるコミュニティマネジメント入門 (2)
コミュニティデザインの思考 / これから始めるコミュニティマネジメント入門 (2)
Takaaki Umada
?
エンジェル投资家って何者?
エンジェル投资家って何者?エンジェル投资家って何者?
エンジェル投资家って何者?
Takaaki Umada
?
研究を加速するスタートアップ 2017
研究を加速するスタートアップ 2017研究を加速するスタートアップ 2017
研究を加速するスタートアップ 2017
Takaaki Umada
?
もしWordPressユーザーがGitを使ったら ?WordPressテーマを共同編集しよう?
もしWordPressユーザーがGitを使ったら ?WordPressテーマを共同編集しよう?もしWordPressユーザーがGitを使ったら ?WordPressテーマを共同編集しよう?
もしWordPressユーザーがGitを使ったら ?WordPressテーマを共同編集しよう?
Takashi Uemura
?
これからはじめるインフラエンジニア
これからはじめるインフラエンジニアこれからはじめるインフラエンジニア
これからはじめるインフラエンジニア
外道 父
?
逆説のスタートアップ思考的「逆张りワークショップ」手顺书
逆説のスタートアップ思考的「逆张りワークショップ」手顺书逆説のスタートアップ思考的「逆张りワークショップ」手顺书
逆説のスタートアップ思考的「逆张りワークショップ」手顺书
Takaaki Umada
?
あなたのスタートアップのアイデアの育てかた
あなたのスタートアップのアイデアの育てかたあなたのスタートアップのアイデアの育てかた
あなたのスタートアップのアイデアの育てかた
Takaaki Umada
?
いつも働きすぎの CEO におくる、スタートアップの成功のための心と体の健康管理入門
いつも働きすぎの CEO におくる、スタートアップの成功のための心と体の健康管理入門いつも働きすぎの CEO におくる、スタートアップの成功のための心と体の健康管理入門
いつも働きすぎの CEO におくる、スタートアップの成功のための心と体の健康管理入門
Takaaki Umada
?
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
土岐 孝平
?
心理的安全性の構造 デブサミ2019夏 structure of psychological safety
心理的安全性の構造 デブサミ2019夏 structure of psychological safety心理的安全性の構造 デブサミ2019夏 structure of psychological safety
心理的安全性の構造 デブサミ2019夏 structure of psychological safety
Tokoroten Nakayama
?
ピッチをする前に知っておきたかったこと スタートアップの资金调达
ピッチをする前に知っておきたかったこと スタートアップの资金调达ピッチをする前に知っておきたかったこと スタートアップの资金调达
ピッチをする前に知っておきたかったこと スタートアップの资金调达
Takaaki Umada
?
経営のアジリティを支える顿别惫翱辫蝉と组织
経営のアジリティを支える顿别惫翱辫蝉と组织経営のアジリティを支える顿别惫翱辫蝉と组织
経営のアジリティを支える顿别惫翱辫蝉と组织
Recruit Technologies
?
滨辞肠コンテナについて
滨辞肠コンテナについて滨辞肠コンテナについて
滨辞肠コンテナについて
Akio Terayama
?
日経BPリーン式創業塾 #leanstartup #リーンスタートアップ
日経BPリーン式創業塾 #leanstartup #リーンスタートアップ日経BPリーン式創業塾 #leanstartup #リーンスタートアップ
日経BPリーン式創業塾 #leanstartup #リーンスタートアップ
Itsuki Kuroda
?
君にグロースハックはいらない
君にグロースハックはいらない君にグロースハックはいらない
君にグロースハックはいらない
Takaaki Umada
?
スタートアップは行动しない / フォーカス、ツール、オペレーションについて
スタートアップは行动しない / フォーカス、ツール、オペレーションについてスタートアップは行动しない / フォーカス、ツール、オペレーションについて
スタートアップは行动しない / フォーカス、ツール、オペレーションについて
Takaaki Umada
?
やはり俺のスタートアップの意思决定はまちがっている。
やはり俺のスタートアップの意思决定はまちがっている。やはり俺のスタートアップの意思决定はまちがっている。
やはり俺のスタートアップの意思决定はまちがっている。
Takaaki Umada
?
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
Tokoroten Nakayama
?
よく聞くけど、「SharePoint リストの 5,000 件問題」ってなんなの?
よく聞くけど、「SharePoint リストの 5,000 件問題」ってなんなの?よく聞くけど、「SharePoint リストの 5,000 件問題」ってなんなの?
よく聞くけど、「SharePoint リストの 5,000 件問題」ってなんなの?
Hirofumi Ota
?
データマイニングの话詰め合わせ
データマイニングの话詰め合わせデータマイニングの话詰め合わせ
データマイニングの话詰め合わせ
Tokoroten Nakayama
?
コミュニティデザインの思考 / これから始めるコミュニティマネジメント入門 (2)
コミュニティデザインの思考 / これから始めるコミュニティマネジメント入門 (2)コミュニティデザインの思考 / これから始めるコミュニティマネジメント入門 (2)
コミュニティデザインの思考 / これから始めるコミュニティマネジメント入門 (2)
Takaaki Umada
?
エンジェル投资家って何者?
エンジェル投资家って何者?エンジェル投资家って何者?
エンジェル投资家って何者?
Takaaki Umada
?
研究を加速するスタートアップ 2017
研究を加速するスタートアップ 2017研究を加速するスタートアップ 2017
研究を加速するスタートアップ 2017
Takaaki Umada
?

Viewers also liked (8)

Wantedly - 世界一"いいね!"される 求人サイトの作り方
Wantedly - 世界一"いいね!"される 求人サイトの作り方Wantedly - 世界一"いいね!"される 求人サイトの作り方
Wantedly - 世界一"いいね!"される 求人サイトの作り方
Yoshinori Kawasaki
?
Apache 3.0 (a tall tale)
Apache 3.0 (a tall tale)Apache 3.0 (a tall tale)
Apache 3.0 (a tall tale)
Roy Fielding
?
How Perl Changed My Life
How Perl Changed My LifeHow Perl Changed My Life
How Perl Changed My Life
Gosuke Miyashita
?
驰补辫肠2012资料
驰补辫肠2012资料驰补辫肠2012资料
驰补辫肠2012资料
matsuo kenji
?
グリーを支えるソーシャルコーディングのすべて
グリーを支えるソーシャルコーディングのすべてグリーを支えるソーシャルコーディングのすべて
グリーを支えるソーシャルコーディングのすべて
Koichiro Ohba
?
ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!
Yohei Fushii
?
Github of project
Github of projectGithub of project
Github of project
Ito Kunihiko
?
会社にGitHub Enterpriseを導入してみた話
会社にGitHub Enterpriseを導入してみた話会社にGitHub Enterpriseを導入してみた話
会社にGitHub Enterpriseを導入してみた話
Shuji Yamada
?
Wantedly - 世界一"いいね!"される 求人サイトの作り方
Wantedly - 世界一"いいね!"される 求人サイトの作り方Wantedly - 世界一"いいね!"される 求人サイトの作り方
Wantedly - 世界一"いいね!"される 求人サイトの作り方
Yoshinori Kawasaki
?
Apache 3.0 (a tall tale)
Apache 3.0 (a tall tale)Apache 3.0 (a tall tale)
Apache 3.0 (a tall tale)
Roy Fielding
?
驰补辫肠2012资料
驰补辫肠2012资料驰补辫肠2012资料
驰补辫肠2012资料
matsuo kenji
?
グリーを支えるソーシャルコーディングのすべて
グリーを支えるソーシャルコーディングのすべてグリーを支えるソーシャルコーディングのすべて
グリーを支えるソーシャルコーディングのすべて
Koichiro Ohba
?
ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!
Yohei Fushii
?
会社にGitHub Enterpriseを導入してみた話
会社にGitHub Enterpriseを導入してみた話会社にGitHub Enterpriseを導入してみた話
会社にGitHub Enterpriseを導入してみた話
Shuji Yamada
?

Similar to Git & GitHub & kintone でウルトラハッピー! (20)

一人でもはじめる骋颈迟でバージョン管理
一人でもはじめる骋颈迟でバージョン管理一人でもはじめる骋颈迟でバージョン管理
一人でもはじめる骋颈迟でバージョン管理
Takafumi Yoshida
?
今さら聞けない人のためのGitLabの始め方 Ubuntu編
今さら聞けない人のためのGitLabの始め方 Ubuntu編今さら聞けない人のためのGitLabの始め方 Ubuntu編
今さら聞けない人のためのGitLabの始め方 Ubuntu編
VirtualTech Japan Inc./Begi.net Inc.
?
Build insider offline session チームでのgit
Build insider offline session チームでのgitBuild insider offline session チームでのgit
Build insider offline session チームでのgit
Tadahiro Ishisaka
?
Gitと出会って人生変わった テックヒルズ2013-03-22
Gitと出会って人生変わった テックヒルズ2013-03-22Gitと出会って人生変わった テックヒルズ2013-03-22
Gitと出会って人生変わった テックヒルズ2013-03-22
Shota Umeda
?
础尝惭ツールたべくらべ
础尝惭ツールたべくらべ础尝惭ツールたべくらべ
础尝惭ツールたべくらべ
Kaoru NAKAMURA
?
2018 07-18 git-hub講座
2018 07-18 git-hub講座2018 07-18 git-hub講座
2018 07-18 git-hub講座
Takahito Sueda
?
ノンプログラマの骋颈迟入门
ノンプログラマの骋颈迟入门ノンプログラマの骋颈迟入门
ノンプログラマの骋颈迟入门
Muyuu Fujita
?
骋颈迟を使った运用方法
骋颈迟を使った运用方法骋颈迟を使った运用方法
骋颈迟を使った运用方法
Hiroki Nigorinuma
?
Python for Data Analysis第1回勉強会(+git入門)
Python for Data Analysis第1回勉強会(+git入門)Python for Data Analysis第1回勉強会(+git入門)
Python for Data Analysis第1回勉強会(+git入門)
Makoto Kawano
?
今さら聞けない人のためのGit超入門 GitLab 13対応版
今さら聞けない人のためのGit超入門 GitLab 13対応版今さら聞けない人のためのGit超入門 GitLab 13対応版
今さら聞けない人のためのGit超入門 GitLab 13対応版
VirtualTech Japan Inc./Begi.net Inc.
?
Multibranch Pipeline with Docker 入門編
Multibranch Pipeline with Docker 入門編Multibranch Pipeline with Docker 入門編
Multibranch Pipeline with Docker 入門編
kimulla
?
今さら聞けない人のためのGit超入門 2020/12/19
今さら聞けない人のためのGit超入門 2020/12/19今さら聞けない人のためのGit超入門 2020/12/19
今さら聞けない人のためのGit超入門 2020/12/19
VirtualTech Japan Inc./Begi.net Inc.
?
01.app
01.app01.app
01.app
Takenori Nakagawa
?
今さら聞けない人のためのGit超入門 2019/11/21
今さら聞けない人のためのGit超入門 2019/11/21今さら聞けない人のためのGit超入門 2019/11/21
今さら聞けない人のためのGit超入門 2019/11/21
VirtualTech Japan Inc./Begi.net Inc.
?
GitLab & web hooks & git-flowで実現する企業向けgit環境の構築
GitLab & web hooks & git-flowで実現する企業向けgit環境の構築GitLab & web hooks & git-flowで実現する企業向けgit環境の構築
GitLab & web hooks & git-flowで実現する企業向けgit環境の構築
CROOZ, inc.
?
今さら闻けない人のための驳颈迟超入门
今さら闻けない人のための驳颈迟超入门今さら闻けない人のための驳颈迟超入门
今さら闻けない人のための驳颈迟超入门
VirtualTech Japan Inc./Begi.net Inc.
?
"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another Approach"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another Approach
Daisuke Miyakawa
?
Metahub for github
Metahub for githubMetahub for github
Metahub for github
Suguru Oho
?
20120125 チーム開発
20120125 チーム開発20120125 チーム開発
20120125 チーム開発
s_taichan
?
20120125 チーム開発
20120125 チーム開発20120125 チーム開発
20120125 チーム開発
Taichi Shindo
?
一人でもはじめる骋颈迟でバージョン管理
一人でもはじめる骋颈迟でバージョン管理一人でもはじめる骋颈迟でバージョン管理
一人でもはじめる骋颈迟でバージョン管理
Takafumi Yoshida
?
Build insider offline session チームでのgit
Build insider offline session チームでのgitBuild insider offline session チームでのgit
Build insider offline session チームでのgit
Tadahiro Ishisaka
?
Gitと出会って人生変わった テックヒルズ2013-03-22
Gitと出会って人生変わった テックヒルズ2013-03-22Gitと出会って人生変わった テックヒルズ2013-03-22
Gitと出会って人生変わった テックヒルズ2013-03-22
Shota Umeda
?
础尝惭ツールたべくらべ
础尝惭ツールたべくらべ础尝惭ツールたべくらべ
础尝惭ツールたべくらべ
Kaoru NAKAMURA
?
ノンプログラマの骋颈迟入门
ノンプログラマの骋颈迟入门ノンプログラマの骋颈迟入门
ノンプログラマの骋颈迟入门
Muyuu Fujita
?
骋颈迟を使った运用方法
骋颈迟を使った运用方法骋颈迟を使った运用方法
骋颈迟を使った运用方法
Hiroki Nigorinuma
?
Python for Data Analysis第1回勉強会(+git入門)
Python for Data Analysis第1回勉強会(+git入門)Python for Data Analysis第1回勉強会(+git入門)
Python for Data Analysis第1回勉強会(+git入門)
Makoto Kawano
?
Multibranch Pipeline with Docker 入門編
Multibranch Pipeline with Docker 入門編Multibranch Pipeline with Docker 入門編
Multibranch Pipeline with Docker 入門編
kimulla
?
GitLab & web hooks & git-flowで実現する企業向けgit環境の構築
GitLab & web hooks & git-flowで実現する企業向けgit環境の構築GitLab & web hooks & git-flowで実現する企業向けgit環境の構築
GitLab & web hooks & git-flowで実現する企業向けgit環境の構築
CROOZ, inc.
?
"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another Approach"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another Approach
Daisuke Miyakawa
?
Metahub for github
Metahub for githubMetahub for github
Metahub for github
Suguru Oho
?
20120125 チーム開発
20120125 チーム開発20120125 チーム開発
20120125 チーム開発
s_taichan
?
20120125 チーム開発
20120125 チーム開発20120125 チーム開発
20120125 チーム開発
Taichi Shindo
?

More from ymmt (6)

Cybozu Meetup #2 SRE
Cybozu Meetup #2 SRECybozu Meetup #2 SRE
Cybozu Meetup #2 SRE
ymmt
?
正しく恐れるクラウドのセキュリティ
正しく恐れるクラウドのセキュリティ正しく恐れるクラウドのセキュリティ
正しく恐れるクラウドのセキュリティ
ymmt
?
Cybozu Meetup Osaka #2 SRE
Cybozu Meetup Osaka #2 SRECybozu Meetup Osaka #2 SRE
Cybozu Meetup Osaka #2 SRE
ymmt
?
アーキテクトになるには
アーキテクトになるにはアーキテクトになるには
アーキテクトになるには
ymmt
?
谤别产补蝉别にまつわる3つの误解
谤别产补蝉别にまつわる3つの误解谤别产补蝉别にまつわる3つの误解
谤别产补蝉别にまつわる3つの误解
ymmt
?
プログラマ人生论
プログラマ人生论プログラマ人生论
プログラマ人生论
ymmt
?
Cybozu Meetup #2 SRE
Cybozu Meetup #2 SRECybozu Meetup #2 SRE
Cybozu Meetup #2 SRE
ymmt
?
正しく恐れるクラウドのセキュリティ
正しく恐れるクラウドのセキュリティ正しく恐れるクラウドのセキュリティ
正しく恐れるクラウドのセキュリティ
ymmt
?
Cybozu Meetup Osaka #2 SRE
Cybozu Meetup Osaka #2 SRECybozu Meetup Osaka #2 SRE
Cybozu Meetup Osaka #2 SRE
ymmt
?
アーキテクトになるには
アーキテクトになるにはアーキテクトになるには
アーキテクトになるには
ymmt
?
谤别产补蝉别にまつわる3つの误解
谤别产补蝉别にまつわる3つの误解谤别产补蝉别にまつわる3つの误解
谤别产补蝉别にまつわる3つの误解
ymmt
?
プログラマ人生论
プログラマ人生论プログラマ人生论
プログラマ人生论
ymmt
?

Recently uploaded (7)

論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
?
【STech I USA】2025.3.21 MWC 2025フィードバック ~通信が作る未来のトレンド~(2025.3.21)
【STech I USA】2025.3.21 MWC 2025フィードバック ~通信が作る未来のトレンド~(2025.3.21)【STech I USA】2025.3.21 MWC 2025フィードバック ~通信が作る未来のトレンド~(2025.3.21)
【STech I USA】2025.3.21 MWC 2025フィードバック ~通信が作る未来のトレンド~(2025.3.21)
Sojitz Tech-Innovation USA
?
鲍-22プログラミング?コンテスト提出资料「作品説明动画」制作のポイントをご绍介
鲍-22プログラミング?コンテスト提出资料「作品説明动画」制作のポイントをご绍介鲍-22プログラミング?コンテスト提出资料「作品説明动画」制作のポイントをご绍介
鲍-22プログラミング?コンテスト提出资料「作品説明动画」制作のポイントをご绍介
鲍-22プログラミング?コンテスト运営事务局
?
カスタム厂尝惭「贬补尘蝉迟别谤」冲軽量でセキュアな専用言语モデル冲础滨エージェント冲チャットボット冲マッチングアプリ构筑のコアパッケージ
カスタム厂尝惭「贬补尘蝉迟别谤」冲軽量でセキュアな専用言语モデル冲础滨エージェント冲チャットボット冲マッチングアプリ构筑のコアパッケージカスタム厂尝惭「贬补尘蝉迟别谤」冲軽量でセキュアな専用言语モデル冲础滨エージェント冲チャットボット冲マッチングアプリ构筑のコアパッケージ
カスタム厂尝惭「贬补尘蝉迟别谤」冲軽量でセキュアな専用言语モデル冲础滨エージェント冲チャットボット冲マッチングアプリ构筑のコアパッケージ
info819904
?
2019飞冲东京大学大学院茂木研究室冲学生研究员杉田翔栄冲搁罢贰最终発表会スライト?.辫诲蹿
2019飞冲东京大学大学院茂木研究室冲学生研究员杉田翔栄冲搁罢贰最终発表会スライト?.辫诲蹿2019飞冲东京大学大学院茂木研究室冲学生研究员杉田翔栄冲搁罢贰最终発表会スライト?.辫诲蹿
2019飞冲东京大学大学院茂木研究室冲学生研究员杉田翔栄冲搁罢贰最终発表会スライト?.辫诲蹿
翔栄 杉田
?
自由に移动する复数の?々に异なる映像を提?するテ?ィスフ?レイシステムについての基础検讨
自由に移动する复数の?々に异なる映像を提?するテ?ィスフ?レイシステムについての基础検讨自由に移动する复数の?々に异なる映像を提?するテ?ィスフ?レイシステムについての基础検讨
自由に移动する复数の?々に异なる映像を提?するテ?ィスフ?レイシステムについての基础検讨
sugiuralab
?
量子リザバソフトウェア冲时系列データ(农业?核融合?需要予测)効果検証冲导入による成果
量子リザバソフトウェア冲时系列データ(农业?核融合?需要予测)効果検証冲导入による成果量子リザバソフトウェア冲时系列データ(农业?核融合?需要予测)効果検証冲导入による成果
量子リザバソフトウェア冲时系列データ(农业?核融合?需要予测)効果検証冲导入による成果
info819904
?
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
?
【STech I USA】2025.3.21 MWC 2025フィードバック ~通信が作る未来のトレンド~(2025.3.21)
【STech I USA】2025.3.21 MWC 2025フィードバック ~通信が作る未来のトレンド~(2025.3.21)【STech I USA】2025.3.21 MWC 2025フィードバック ~通信が作る未来のトレンド~(2025.3.21)
【STech I USA】2025.3.21 MWC 2025フィードバック ~通信が作る未来のトレンド~(2025.3.21)
Sojitz Tech-Innovation USA
?
カスタム厂尝惭「贬补尘蝉迟别谤」冲軽量でセキュアな専用言语モデル冲础滨エージェント冲チャットボット冲マッチングアプリ构筑のコアパッケージ
カスタム厂尝惭「贬补尘蝉迟别谤」冲軽量でセキュアな専用言语モデル冲础滨エージェント冲チャットボット冲マッチングアプリ构筑のコアパッケージカスタム厂尝惭「贬补尘蝉迟别谤」冲軽量でセキュアな専用言语モデル冲础滨エージェント冲チャットボット冲マッチングアプリ构筑のコアパッケージ
カスタム厂尝惭「贬补尘蝉迟别谤」冲軽量でセキュアな専用言语モデル冲础滨エージェント冲チャットボット冲マッチングアプリ构筑のコアパッケージ
info819904
?
2019飞冲东京大学大学院茂木研究室冲学生研究员杉田翔栄冲搁罢贰最终発表会スライト?.辫诲蹿
2019飞冲东京大学大学院茂木研究室冲学生研究员杉田翔栄冲搁罢贰最终発表会スライト?.辫诲蹿2019飞冲东京大学大学院茂木研究室冲学生研究员杉田翔栄冲搁罢贰最终発表会スライト?.辫诲蹿
2019飞冲东京大学大学院茂木研究室冲学生研究员杉田翔栄冲搁罢贰最终発表会スライト?.辫诲蹿
翔栄 杉田
?
自由に移动する复数の?々に异なる映像を提?するテ?ィスフ?レイシステムについての基础検讨
自由に移动する复数の?々に异なる映像を提?するテ?ィスフ?レイシステムについての基础検讨自由に移动する复数の?々に异なる映像を提?するテ?ィスフ?レイシステムについての基础検讨
自由に移动する复数の?々に异なる映像を提?するテ?ィスフ?レイシステムについての基础検讨
sugiuralab
?
量子リザバソフトウェア冲时系列データ(农业?核融合?需要予测)効果検証冲导入による成果
量子リザバソフトウェア冲时系列データ(农业?核融合?需要予测)効果検証冲导入による成果量子リザバソフトウェア冲时系列データ(农业?核融合?需要予测)効果検証冲导入による成果
量子リザバソフトウェア冲时系列データ(农业?核融合?需要予测)効果検証冲导入による成果
info819904
?

Git & GitHub & kintone でウルトラハッピー!

  • 1. Git & GitHub & kintone で ウルトラハッピー! サイボウズ株式会社 山本泰宇 @ymmt2005 ? 2012 Cybozu. All rights reserved.
  • 2. どんな人にうれしい話? ブランチ管理が地獄のよう ? Git なら素早く解決! だと悩んでいる人 ? ブランチ & マージは日常作業になります Fisheye? + Crucible? ? GitHub は速いしメンテナンスも楽々 に悩んでいる人 Git やってみたいけど、きっ ? Hazama のノウハウ集、共有します! かけがつかめない人 ※Fisheye, Atlassian Crucible は Atlassian の商標です ※Hazama は cybozu.com のインフラツール開発チームです
  • 3. cybozu.com 運用管理ツール ? ストレージ管理 データセンター用 ? VM管理 ? 各種モニタリング ? 深刻な問題が発生すれば即改修が必要 頻繁なリリース ? 依存関係の都合でリリース期日指定も良くある ? 開発環境(試験用) 環境が二つ ? 運用環境(試験済み)
  • 4. 开発の流れ 開発DCでQA試験 ?設計レビュー ?試験済み、かつ ?実装レビュー&修正 ?開発環境用に結合 ?リリース可のコードを適用 ?バグが混じり、不安定 ?週に何回も適用することも ?検出不具合を追加修正 各自開発 運用DCに適用
  • 5. Subversion時代: 不幸のどん底 ? trunk に直接コミット ? ブランチ作成は遅すぎて滅多にしない (作った後のチェックアウトが遅い) ? 安定版を作るには 1. ブランチを作成 2. 未試験のコミットをリバースマージ ? 問題点 ? コミットログの精査が人力 ? 後回しにすると、ますます辛い ? 安定版ブランチを持つ? ? 目でログを探す点は変わらない ? マージしていないコミットの管理が辛い
  • 6. 解決したい問題 ブランチ作成の高速化 ? 個々のタスクごとにブランチを作成したい(トピックブランチ) ? 一度マージした後、追加の改修を再度マージ マージを繰り返したい ? 親ブランチの変更を取り込み後、親ブランチに再度マージ ? まだマージしていないコミットを自動検出したい マージを楽にしたい ? 特定のコミットをすばやくマージしたい Subversion が遅い ? 日々のストレスにもう耐えられません
  • 7. Gitで解決! その理由 手元にレポジトリ ? ブランチ作成やマージはすべてローカル操作 が丸ごとある ? だから高速! リモートレポジトリ ? 日々の作業は極めて高速 とは差分更新 ? 初回のクローンだけ遅い コミット履歴は ? Git のブランチ=分岐したグラフの枝 グラフ管理 ? Git のマージ=二つの枝の合流
  • 8. Git vs. Mercurial Git のほうが強力で、速くて、省スペースで、難しい ? 慣れれば Git の利点が大きい GitHub が便利すぎる ? これから解説します ? Linux カーネルとその周辺が Git 管理 ? Hazama は良く Linux の不具合追うので… というのは私だけの意見じゃないですよ! ? Why did Git get so much hype? …while others don't? ? Git, Mercurial and Bazaar – A Comparison
  • 9. GitHub Enterprise Git だけでサイボウズの開発はまわらない ? コードレビューどうする? ? レポジトリ管理?アクセスコントロールは? ? 共有レポジトリは誰が管理するの? そこで GitHub Enterprise ? github.com を仮想アプライアンスで社内運用 ? 1ユーザー年間2万円くらい
  • 10. GitHub いいよ! ? GitHub = Gitレポジトリ管理 + レビューツール ? ユーザーが自由にレポジトリを作れる! ? Fisheye? + Atlassian Crucible? より速い ? Fisheye? + Atlassian Crucible? より落ちない ? Fisheye? + Atlassian Crucible? よりメンテナンスが楽 ? おまけに Wiki と Gist もついてくる ? Wiki 便利 ? Gitレポジトリになっているので、テキストエディタで編集が可能 ? 編集がコンフリクトしてもうまくマージできるよ ? ? Issues はしょぼい ? kintone と連携すれば最強 ※kintone は cybozu.com のアプリ作成ツール Hazama の開発タスク管理にも使っています
  • 11. PULLリクエスト駆動開発 ? PULLリクエスト ? レビュー&マージツール ? よそのプロジェクトにパッチ投げることもできる ? レビュー OK ならボタン一発でブランチをマージ ? 死ぬほど便利なので、PULLリクエスト中心にワークフローは考えよう! ? ワークフローの例 ここが肝 1. タスクごとにトピックブランチを作る 2. PULLリクエストを投げてレビューしてもらう 3. 指摘事項を修正してトピックブランチにPUSH 4. PULLリクエストの中身が更新されるので、再レビュー 5. レビューOKならレビュワーがボタンクリックでマージ&クローズ!
  • 12. 导入后のワークフロー PULLリクエスト 開発レポジトリ PULLリクエスト 安定レポジトリ トピックブランチ hazama/infra forest/infra 開発DCでQA試験 ?設計レビュー ?試験済み、かつ ?実装レビュー&修正w ?開発環境用に結合 ?リリース可のコードを適用 ?バグが混じり、不安定 ?週に何回も適用することも ?検出不具合を追加修正 各自開発 運用DCに適用
  • 13. 言うは易しだが??? ? hazama/infra は Hazama 開発チーム管理 管理権限を分離 ? forest/infra は運用チーム管理 二つのレポジトリを ? 試験が終わるまでは hazama/infra にマージ 意識する必要あり ? 試験終了後は forest/infra にマージ 開発完了の順に ? リリースするべきものだけを chrry-pick ? うまくやらないと、意図しない hazama のコミットが紛れ込む 試験完了はしない ? トピックブランチから必要なコミットを自動的に抜き出したい
  • 14. 行うは难し $ git clone github:hazama/infra 管理権限を分離 $ git remote add stable github:forest/infra $ git fetch stable 二つのレポジトリを $ git fetch origin $ git checkout –b INFRA-xx origin/master 意識する必要あり $ git push origin INFRA-xx $ git fetch stable 開発完了の順に $ git checkout –b INFRA-xx-forest stable/master $ git fetch origin $ BRANCH_ORIG=$(複雑なコマンド) 試験完了はしない $ git cherry-pick --first-parent --no-merges $BRANCH_ORIG..origin/INFRA-xx $ (コンフリクト修正) $ git push origin INFRA-xx-forest
  • 15. hazama tools でウルトラハッピー! git-hazama 拡張コマンド kintone API クライアント github v3 API クライアント github-kintone 連携 Chrome 拡張 GitHub で公開してます! https://github.com/ymmt2005/hazama-tools
  • 16. git hazama でこうなる! $ git hazama setup infra 管理権限を分離 (clone して remote 追加) $ git hazama dev 二つのレポジトリを …. $ git hazama review dev TICKET 意識する必要あり (トピックブランチ作成, PUSH, PULLリク作成, kintone 更新) $ git hazama pick TICKET 開発完了の順に (必要なコミットを自動 cherry-pick) $ git hazama stage TICKET 試験完了はしない (forest/infra へのPULLリク作成, kintone 更新)
  • 17. GitHub ? kintone 連携 ← Chrome 拡張でチケットに自動リンク ↑ git hazama が PULL リク自動記載
  • 18. Git に乗り換えるには? Hazama謹製 ? 要望あれば公開検討します! チュートリアル ? @ymmt2005 までどうぞ ? git svn のラッパー svn2git ? 関連の薄いモジュールのレポジトリは分割インポートがお勧め GitHub アカウント ? サインアップしてご自由にどうぞ ? 「コミットグラフ」の意味がわかるくらいでないと厳しい 一人は慣れていること ? 各チーム一人は、隠れ Git ユーザーがいるでしょう ?