SlideShare a Scribd company logo
表紙
パワーランチ:
Git運用ダメ出し会
2014.5.27
株式会社ネクストスケープ
三原亮介
Git運用ダメ出し会
アジェンダ
Last Updated: Wednesday, May 28, 2014
www.nextscape.net 2
Gitについて軽く説明
(Subversionとの違いなど)
Sitecoreウェブサイトでの運用事例
Windows上でGitを使う際の注意点
Git運用ダメ出し会
Subversionとの違い
Last Updated: Wednesday, May 28, 2014
www.nextscape.net 3
SubversionとGitで使う用語の意味は変わっていない。全体のコンセプトが違う。
作業コピー
Subversion Git
リポジトリ
コミットチェックアウト
作業ツリー
リポジトリ
コミットチェックアウト
リモート
リポジトリ
クローン(複製)
Git運用ダメ出し会
Sitecoreデータのバージョン管理
Last Updated: Wednesday, May 28, 2014
www.nextscape.net 4
Sitecoreのウェブサイト運用でバージョン管理するデータとは?
.aspx .ascx
.cs
.item
シリアライズ.item
.item
詳しくは、Sitecore MVP 赤澤さんのブログ記事で!
ネスケラボ 『Sitecoreデータのバージョン管理事始め』
http://blog.nextscape.net/index.php/archives/2476
画像
CSS
テキスト
Git運用ダメ出し会
使用ツール
Last Updated: Wednesday, May 28, 2014
www.nextscape.net 5
Git for Windows
• Git BASHが便利。無いと困る。
• TortoiseGit、SourceTreeのコア
TortoiseGit
• TortoiseSVNと同様のエクスプローラー組み込み型
• Diffを見たりするのに便利
SourceTree
• Git-flowをサポート
Backlog
• リモートリポジトリのホスティング
• ネットワーク図が見やすい
Git運用ダメ出し会
既存SVNリポジトリの移行
 Ruby製ツールsvn2git(https://github.com/nirvdrum/svn2git)を使用。
 trunk/branches/tagsの構成をGit流に変換できる。
インストール
実行
tagsの中身が大きく、全部移行しようとしたら長時間がかかる上に止まったりしたので、trunkのみ移行することにした。
(SVNリポジトリを破棄するわけでもないので、tagsやbranches移行しないでも問題なかった)。
Last Updated: Wednesday, May 28, 2014
www.nextscape.net 6
ツールを使ってSVNリポジトリをGitリポジトリに変換した。
$ gem install svn2git
$ svn2git https://subversion/repository --username mihara -v --trunk trunk --nobranches --notags
Git運用ダメ出し会
SitecoreウェブサイトでのGit運用事例
Last Updated: Wednesday, May 28, 2014
www.nextscape.net 7
得意先とNextscapeで2つのリポジトリを使用。
Sitecore
本番環境
Sitecore
ステージ環境
Git
Git
Nextscape Backlog
Gitリポジトリ
A社 Backlog
Gitリポジトリ
A社
Nextscape
NSでは社内リポジトリで作業を行い、
改修リリース時に得意先リポジトリへ反映(手で)。
Git運用ダメ出し会 Last Updated: Wednesday, May 28, 2014
www.nextscape.net 8
ブランチ運用
得意先はmaster一本。NextscapeではGit-flowワークフローを採用。
キャンペーンサイトなど
大規模改修
Master
A社
リポジトリ
保守作業
本番環境
ステージ
環境
Nextscape
リポジトリ
A社
Web担当者様
レイアウト等
修正
NS
JINリポジトリ
変更の取得
NS
保守改修
リリース NS
大規模改修
リリース
Git運用ダメ出し会
Git-flow概要
 Vincent Driessen氏が提唱するブランチ運用のやりかた。
 Git-flowのやりかたをやりやすくするツールがある(git-flow, SourceTree…)
 本件ではSourceTreeを採用。
Last Updated: Wednesday, May 28, 2014
www.nextscape.net 9
社内ではGit-flowワークフローによって運用。
Git運用ダメ出し会
Git flow① 保守=develop
 masterブランチはすぐにリリースしてOKな状態に保つ。
 日々の保守作業はdevelopブランチ上で行い、リリースOK状態になったらmasterブランチにマージ。
Last Updated: Wednesday, May 28, 2014
www.nextscape.net 10
Git運用ダメ出し会
Git flow② 追加開発=featureブランチ
 大きめの開発するときは、developブランチからfeatureブランチを切る。
 開発が終わったら、developブランチにマージする。
Last Updated: Wednesday, May 28, 2014
www.nextscape.net 11
Git運用ダメ出し会
Git flow③ バグ対応など=hotfix
Last Updated: Wednesday, May 28, 2014
www.nextscape.net 12
 緊急なバグ対応とか。
 得意先での変更内容も。
Git運用ダメ出し会
得意先リポジトリとの連携
 得意先でソースを編集されることがある。
 .aspxや.ascxファイルはビルドしないでもすぐ変更が反映される。
 文言の修正とか、JavaScriptの追加とか。
 変更したら、リポジトリへコミット/プッシュしてもらうようにお願いした。
 ファイルのやり取りは手でやる。
Last Updated: Wednesday, May 28, 2014
www.nextscape.net 13
Master
A社
リポジトリ
本番環境
ステージ
環境
Nextscape
リポジトリ
A社
Web担当者様
レイアウト等
修正
①
②
③
NS
A社リポジトリ
変更の取得
NS
保守改修の反映
Git運用ダメ出し会
Windows上のGit(トラブル)
改行コードの変換
長いパスの問題
Last Updated: Wednesday, May 28, 2014
www.nextscape.net 14
Git運用ダメ出し会
Windows上のGit(トラブル)
問題
 CRLF->LFに変換する機能がある。
 Sitecoreのシリアライズしたデータの管理で困った。
対策
 改行コード変換しないようにした。
Last Updated: Wednesday, May 28, 2014
www.nextscape.net 15
改行コードの問題
----item----
version: 1
id: {3D403A61-253D-41A0-9A12-A5A43899F20F}
database: master
path: /sitecore/content/Home-2013/salon_info2/kanto/tochigi/567
parent: {21B7712E-E70E-43D3-B83D-5F2528F50907}
name: 567
master: {00000000-0000-0000-0000-000000000000}
template: {D8C795E4-B73B-4A5F-A424-94DD5D70267B}
templatekey: Salon
----field----
field: {A4F985D9-98B3-4B52-AAAF-4344F6E747C6}
name: __Workflow
key: __workflow
content-length: 38
{F16F7611-7B6C-47D3-B285-4626BFEAF7A6}
----version----
language: ja-JP
version: 1
revision: 46f254ba-7088-49b2-8011-64c108d81c1b
----field----
field: {F501BC74-9AF1-4044-B2BD-5A848124CB7B}
name: Metadata_Title
key: metadata_title
content-length: 33
サイトコア(マーケティングCMS) | Sitecore開発パートナー - 株式会社ネクストスケープ
----field----
field: {16534B48-FE26-4FC2-81CD-57C36DA3F0C0}
name: Metadata_Description
key: metadata_description
content-length: 129
Sitecoreはその使いやすさ・機能性が認められ世界50か国、32,000サイト以上で愛されるWeb
コンテンツ管理システムです。Sitecoreは留まることなく世界中のユーザーの声、最新のトレン
ドを吸収し今も成長を続けています。
…
シリアライズ化データの一例
Git運用ダメ出し会
Windows上のGit(トラブル)
Last Updated: Wednesday, May 28, 2014
www.nextscape.net 16
改行コードの問題の対処方法
リポジトリごとの設定
*.item -text
リポジトリのルートに .gitattributes ファイルを作り、下記を記載:
.itemファイルについては
改行の変換を行わない
Git運用ダメ出し会
Windows上のGit(トラブル)
Last Updated: Wednesday, May 28, 2014
www.nextscape.net 17
改行コードの問題の対処方法
環境ごとの設定
$ git config --global core.autocrlf false
全ファイル改行の変換を行わない
Git運用ダメ出し会
Windows上のGit(トラブル)
問題
 Windowsが扱えるファイルパスは260文字までに制限されている。
 Gitリポジトリからファイルを取得時に、ファイルパスが長すぎてコケる事案が発生。
対策
 Git for Windows 1.9.0からは260文字の制限を超えたファイルパスを扱えるようになっている。
 NTFSでは32,767文字までのファイルパスを扱える。
 エクスプローラーなどアプリケーションの実装上制限がかかっている。→制限をはずすことはできる。
 ただし、明示的に設定しておかないと制限解除ができない。
Last Updated: Wednesday, May 28, 2014
www.nextscape.net 18
長いパスの問題
くわしくは・・・
Win32: support long paths
https://github.com/msysgit/git/commit/c5f98452e98dca292c615000df7973ead63cf29b
(Git for Windowsのコミットコメント)
Git運用ダメ出し会
Windows上のGit(トラブル)
環境ごとの設定
Last Updated: Wednesday, May 28, 2014
www.nextscape.net 19
長いパスの問題の対処方法
$ cd /path/to/repository/
$ git config --add core.longpaths true
$ git config --global core.longpaths true
リポジトリごとの設定
Git運用ダメ出し会
まとめ
Gitのコンセプトを理解する
運用ルール(Git-flowなど)を決めておく
Windowsで使う場合はちゃんと設定する
Last Updated: Wednesday, May 28, 2014
www.nextscape.net 20
Gitは怖くない

More Related Content

What's hot

Windows環境でのgitまとめ(2016.8)
Windows環境でのgitまとめ(2016.8)Windows環境でのgitまとめ(2016.8)
Windows環境でのgitまとめ(2016.8)
Tadahiro Ishisaka
 
やりなおせる Git 入門
やりなおせる Git 入門やりなおせる Git 入門
やりなおせる Git 入門
Tomohiko Himura
 
私が複数人開発で感じている Git・GitHubのうまみ
私が複数人開発で感じている Git・GitHubのうまみ私が複数人開発で感じている Git・GitHubのうまみ
私が複数人開発で感じている Git・GitHubのうまみ
Shihomi Katayama
 
Yapc2012資料
Yapc2012資料Yapc2012資料
Yapc2012資料
matsuo kenji
 
はじめてのGit #gitkyoto
はじめてのGit #gitkyotoはじめてのGit #gitkyoto
はじめてのGit #gitkyoto
Hisateru Tanaka
 
ノンプログラマのGit入門
ノンプログラマのGit入門ノンプログラマのGit入門
ノンプログラマのGit入門
Muyuu Fujita
 
会社に Github導入した話
会社に Github導入した話会社に Github導入した話
会社に Github導入した話
Yutaka Kinjyo
 
20160128 jjug Nightセミナー_Git実践入門
20160128 jjug Nightセミナー_Git実践入門20160128 jjug Nightセミナー_Git実践入門
20160128 jjug Nightセミナー_Git実践入門
Mizuki Ugajin
 
マジカルsvnとキュアgit
マジカルsvnとキュアgitマジカルsvnとキュアgit
マジカルsvnとキュアgit
Takafumi ONAKA
 
大容量ファイルもGitで管理。 Git LFSの使い方
大容量ファイルもGitで管理。 Git LFSの使い方大容量ファイルもGitで管理。 Git LFSの使い方
大容量ファイルもGitで管理。 Git LFSの使い方
hibiki443
 
ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!Yohei Fushii
 
SIerは如何にしてGitHub Enterpriseを導入するにようになったか
SIerは如何にしてGitHub Enterpriseを導入するにようになったかSIerは如何にしてGitHub Enterpriseを導入するにようになったか
SIerは如何にしてGitHub Enterpriseを導入するにようになったか
You_Kinjoh
 
Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!
ymmt
 
GitHubで学ぶバージョン管理
GitHubで学ぶバージョン管理GitHubで学ぶバージョン管理
GitHubで学ぶバージョン管理
Masafumi Yokoyama
 
一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理
Takafumi Yoshida
 
Git勉強会 2016 Gitで卒論を管理しよう回
Git勉強会 2016 Gitで卒論を管理しよう回Git勉強会 2016 Gitで卒論を管理しよう回
Git勉強会 2016 Gitで卒論を管理しよう回
kinme modoki
 
Wantedly - 世界一"いいね!"される 求人サイトの作り方
Wantedly - 世界一"いいね!"される 求人サイトの作り方Wantedly - 世界一"いいね!"される 求人サイトの作り方
Wantedly - 世界一"いいね!"される 求人サイトの作り方
Yoshinori Kawasaki
 
Source treeの紹介
Source treeの紹介Source treeの紹介
Source treeの紹介
ko ty
 

What's hot (20)

Windows環境でのgitまとめ(2016.8)
Windows環境でのgitまとめ(2016.8)Windows環境でのgitまとめ(2016.8)
Windows環境でのgitまとめ(2016.8)
 
やりなおせる Git 入門
やりなおせる Git 入門やりなおせる Git 入門
やりなおせる Git 入門
 
私が複数人開発で感じている Git・GitHubのうまみ
私が複数人開発で感じている Git・GitHubのうまみ私が複数人開発で感じている Git・GitHubのうまみ
私が複数人開発で感じている Git・GitHubのうまみ
 
Yapc2012資料
Yapc2012資料Yapc2012資料
Yapc2012資料
 
はじめてのGit #gitkyoto
はじめてのGit #gitkyotoはじめてのGit #gitkyoto
はじめてのGit #gitkyoto
 
ノンプログラマのGit入門
ノンプログラマのGit入門ノンプログラマのGit入門
ノンプログラマのGit入門
 
会社に Github導入した話
会社に Github導入した話会社に Github導入した話
会社に Github導入した話
 
20160128 jjug Nightセミナー_Git実践入門
20160128 jjug Nightセミナー_Git実践入門20160128 jjug Nightセミナー_Git実践入門
20160128 jjug Nightセミナー_Git実践入門
 
マジカルsvnとキュアgit
マジカルsvnとキュアgitマジカルsvnとキュアgit
マジカルsvnとキュアgit
 
Git勉強会
Git勉強会Git勉強会
Git勉強会
 
大容量ファイルもGitで管理。 Git LFSの使い方
大容量ファイルもGitで管理。 Git LFSの使い方大容量ファイルもGitで管理。 Git LFSの使い方
大容量ファイルもGitで管理。 Git LFSの使い方
 
ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!
 
SIerは如何にしてGitHub Enterpriseを導入するにようになったか
SIerは如何にしてGitHub Enterpriseを導入するにようになったかSIerは如何にしてGitHub Enterpriseを導入するにようになったか
SIerは如何にしてGitHub Enterpriseを導入するにようになったか
 
Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!
 
GitHubで学ぶバージョン管理
GitHubで学ぶバージョン管理GitHubで学ぶバージョン管理
GitHubで学ぶバージョン管理
 
一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理
 
Git勉強会 2016 Gitで卒論を管理しよう回
Git勉強会 2016 Gitで卒論を管理しよう回Git勉強会 2016 Gitで卒論を管理しよう回
Git勉強会 2016 Gitで卒論を管理しよう回
 
Wantedly - 世界一"いいね!"される 求人サイトの作り方
Wantedly - 世界一"いいね!"される 求人サイトの作り方Wantedly - 世界一"いいね!"される 求人サイトの作り方
Wantedly - 世界一"いいね!"される 求人サイトの作り方
 
Git地図
Git地図Git地図
Git地図
 
Source treeの紹介
Source treeの紹介Source treeの紹介
Source treeの紹介
 

Similar to Git運用ダメ出し会 - ネクストスケープ 2014/05/27 パワーランチ資料

15分でわかるGit入門
15分でわかるGit入門15分でわかるGit入門
15分でわかるGit入門
to_ueda
 
Git社内勉強会資料
Git社内勉強会資料Git社内勉強会資料
Git社内勉強会資料
Kenji Takei
 
20120324 git training
20120324 git training20120324 git training
20120324 git trainingTakeshi AKIMA
 
超初心者向け!Visual Studio + Git で始める アジャイル開発 #fukuazu #jazug - ふくあず ~夏の終わりはDevelop...
超初心者向け!Visual Studio + Git で始める アジャイル開発 #fukuazu #jazug - ふくあず ~夏の終わりはDevelop...超初心者向け!Visual Studio + Git で始める アジャイル開発 #fukuazu #jazug - ふくあず ~夏の終わりはDevelop...
超初心者向け!Visual Studio + Git で始める アジャイル開発 #fukuazu #jazug - ふくあず ~夏の終わりはDevelop...
満徳 関
 
Git for windows情報アップデート 2014年10月5日
Git for windows情報アップデート 2014年10月5日Git for windows情報アップデート 2014年10月5日
Git for windows情報アップデート 2014年10月5日Tadahiro Ishisaka
 
Github第4章
Github第4章Github第4章
Github第4章
Yuto Suzuki
 
Gitと出会って人生変わった テックヒルズ2013-03-22
Gitと出会って人生変わった テックヒルズ2013-03-22Gitと出会って人生変わった テックヒルズ2013-03-22
Gitと出会って人生変わった テックヒルズ2013-03-22Shota Umeda
 
git-svnつかってみる?
git-svnつかってみる?git-svnつかってみる?
git-svnつかってみる?
riskrisk
 
Git 初心者講座 by forkwell
Git 初心者講座 by forkwellGit 初心者講座 by forkwell
Git 初心者講座 by forkwell
sinsoku listy
 
Git introduction2
Git introduction2Git introduction2
Git introduction2
Misa Kondo
 
Git講習会
Git講習会Git講習会
Git講習会
galluda
 
VCS - Version Control System at Security and Programming camp 2011
VCS - Version Control System at Security and Programming camp 2011 VCS - Version Control System at Security and Programming camp 2011
VCS - Version Control System at Security and Programming camp 2011
Hiro Yoshioka
 
バージョン管理とGit
バージョン管理とGitバージョン管理とGit
バージョン管理とGitsinsoku listy
 
Gitの使い方
Gitの使い方Gitの使い方
Gitの使い方
MarlboroLand
 
ChatGPT の現状理解と 2023年7月版 LLM情報アップデート
ChatGPT の現状理解と 2023年7月版 LLM情報アップデートChatGPT の現状理解と 2023年7月版 LLM情報アップデート
ChatGPT の現状理解と 2023年7月版 LLM情報アップデート
Satoshi Kume
 
分散バージョン管理システムって何なん 20101218
分散バージョン管理システムって何なん 20101218分散バージョン管理システムって何なん 20101218
分散バージョン管理システムって何なん 20101218
Takashi Okamoto
 
Windows8のクライアントHyper-V入門(.NETラボ勉強会 2013/6/22 日本マイクロソフト)
Windows8のクライアントHyper-V入門(.NETラボ勉強会 2013/6/22 日本マイクロソフト)Windows8のクライアントHyper-V入門(.NETラボ勉強会 2013/6/22 日本マイクロソフト)
Windows8のクライアントHyper-V入門(.NETラボ勉強会 2013/6/22 日本マイクロソフト)
Tomokazu Kizawa
 
ゼミGit
ゼミGitゼミGit
ゼミGit
Takuya Uehara
 
XPages開発におけるGit/GitHubの利用
XPages開発におけるGit/GitHubの利用XPages開発におけるGit/GitHubの利用
XPages開発におけるGit/GitHubの利用賢次 海老原
 

Similar to Git運用ダメ出し会 - ネクストスケープ 2014/05/27 パワーランチ資料 (20)

15分でわかるGit入門
15分でわかるGit入門15分でわかるGit入門
15分でわかるGit入門
 
Git社内勉強会資料
Git社内勉強会資料Git社内勉強会資料
Git社内勉強会資料
 
Git 20100313
Git 20100313Git 20100313
Git 20100313
 
20120324 git training
20120324 git training20120324 git training
20120324 git training
 
超初心者向け!Visual Studio + Git で始める アジャイル開発 #fukuazu #jazug - ふくあず ~夏の終わりはDevelop...
超初心者向け!Visual Studio + Git で始める アジャイル開発 #fukuazu #jazug - ふくあず ~夏の終わりはDevelop...超初心者向け!Visual Studio + Git で始める アジャイル開発 #fukuazu #jazug - ふくあず ~夏の終わりはDevelop...
超初心者向け!Visual Studio + Git で始める アジャイル開発 #fukuazu #jazug - ふくあず ~夏の終わりはDevelop...
 
Git for windows情報アップデート 2014年10月5日
Git for windows情報アップデート 2014年10月5日Git for windows情報アップデート 2014年10月5日
Git for windows情報アップデート 2014年10月5日
 
Github第4章
Github第4章Github第4章
Github第4章
 
Gitと出会って人生変わった テックヒルズ2013-03-22
Gitと出会って人生変わった テックヒルズ2013-03-22Gitと出会って人生変わった テックヒルズ2013-03-22
Gitと出会って人生変わった テックヒルズ2013-03-22
 
git-svnつかってみる?
git-svnつかってみる?git-svnつかってみる?
git-svnつかってみる?
 
Git 初心者講座 by forkwell
Git 初心者講座 by forkwellGit 初心者講座 by forkwell
Git 初心者講座 by forkwell
 
Git introduction2
Git introduction2Git introduction2
Git introduction2
 
Git講習会
Git講習会Git講習会
Git講習会
 
VCS - Version Control System at Security and Programming camp 2011
VCS - Version Control System at Security and Programming camp 2011 VCS - Version Control System at Security and Programming camp 2011
VCS - Version Control System at Security and Programming camp 2011
 
バージョン管理とGit
バージョン管理とGitバージョン管理とGit
バージョン管理とGit
 
Gitの使い方
Gitの使い方Gitの使い方
Gitの使い方
 
ChatGPT の現状理解と 2023年7月版 LLM情報アップデート
ChatGPT の現状理解と 2023年7月版 LLM情報アップデートChatGPT の現状理解と 2023年7月版 LLM情報アップデート
ChatGPT の現状理解と 2023年7月版 LLM情報アップデート
 
分散バージョン管理システムって何なん 20101218
分散バージョン管理システムって何なん 20101218分散バージョン管理システムって何なん 20101218
分散バージョン管理システムって何なん 20101218
 
Windows8のクライアントHyper-V入門(.NETラボ勉強会 2013/6/22 日本マイクロソフト)
Windows8のクライアントHyper-V入門(.NETラボ勉強会 2013/6/22 日本マイクロソフト)Windows8のクライアントHyper-V入門(.NETラボ勉強会 2013/6/22 日本マイクロソフト)
Windows8のクライアントHyper-V入門(.NETラボ勉強会 2013/6/22 日本マイクロソフト)
 
ゼミGit
ゼミGitゼミGit
ゼミGit
 
XPages開発におけるGit/GitHubの利用
XPages開発におけるGit/GitHubの利用XPages開発におけるGit/GitHubの利用
XPages開発におけるGit/GitHubの利用
 

Git運用ダメ出し会 - ネクストスケープ 2014/05/27 パワーランチ資料

Editor's Notes

  1. 1