SlideShare uma empresa Scribd logo
1 de 67
Baixar para ler offline
道具としてのDVCS
     第7回RxTstudy
           @irof
じこしょうかい

irof (いろふ)
  ぷろぐらま
  Java/Groovy/Jenkins/Git

 Redmineとかよくわかりません(真顔
道具を使う目的は?
道具



道具は問題を解決するもの
問題に対する2つの問題



1. 面倒なままなんとかしてる
2.解決できると気付いていない
なんとかしてる問題

単純作業
 「面倒だなー」と言いつつ、殆ど考え
 ずに機械的にこなす作業
道具を使う?
 「わざわざ使わなくても手でできる
 し……」
気付いていない問題


無理と決め付けちゃってるもの
 「常識」と言う思い込み
道具を使う?
 問題があることを認識出来ないの
 で、選択肢すら浮かばない
問題の問題
対応出来る道具がある。
かもしれない。
「知らなかったー」は出来る
だけ減らしたい。
 減らして楽したい。
DVCSが解決する問題


なんだろう。
 なんとかしてる問題なのか。
 気付いていない問題なのか。
VCSに求めること
VCSにして欲しいこと



バージョン管理
 バージョン?
たいむましん


変なことになったから元に戻したい
 少なくとも昔動いていた必要がある
 動いた時点のスナップショット
DVCSについて
ぶんさんばーじょんかんr

第三世代と言われるようです。
 第一世代 SCCR/RCS
 第二世代 CVS/SVN/VSS
 第三世代 Git/Mercurial/Bazaar
……とかツラツラ話してもあんまり意味
ないかなーと思いつつ。
小ネタ: Gitの名前




”Global Information Tracker”
の略……と言う後付けも。
段階的な
Gitの使い方
段階的なGitの使い方


Gitはどう言う使い方が出来るのかを話
してみようと思います。
Gitに限らず、DVCSなら大体同じよう
な使い方できます。
Git修得Step


1. 日付ディレクトリの代わりに
2. 作業の切り替えと統合
3. 共有、そのいち
4. 共有、そのに
Step1
日付ディレクトリ代替
日付ディレクトリ

   1. バックアップディレ
      クトリを作っとく
   2. 日付ディレクトリを
      作る
   3. ファイルを中にコ
      ピーする
Gitで代替



  1. gitリポジトリを作る
  2. gitでコミットする
だいたい代替
日付ディレクトリの問題

     1. 手間
     2. ファイルが増えると
        毎回コピーが重い
     3. ディスクスペース
     4. 何が変わったか記
        録し辛い
Gitでの解決

毎回全コピー重い
 更新されたファイルを追加。
ディスクスペース
 更新分だけ+圧縮とか。
記録
 コミットログ使ってください。
 diffとかも勿論あるし。
ここで覚えられること(保存)

リポジトリの作成
 git init
構成管理対象ファイルの追加/削除
 git add
コミット
 git commit
ここで覚えられること(復元)


履歴の参照
 git log
特定の時点に戻す
 git checkout
Step2
作業の切り替え
コードAを編集中
ここで割り込みが発生する
コードAを戻してコードBを修
正しなきゃいけない
DVCSを使わない場合

Subversion
  Aブランチを作成してコミット
  Bブランチを作成してチェックアウト
……ってなるだろうけど
  チームのブランチ戦略にもよる。
  何よりスイッチコストが高い。
例えばこうしちゃったり……
問題

Subversion
  コミットやブランチが重い。
   ブランチ作成スタンプラリー
  ブランチ運用が不明確だったり(そ
  れはそれで問題だけど)
手動
  間違えやすい。忘れる。
Gitでの解決




やることはSubversionと同じ。
操作が軽いので、今までコスト諸々で
妥協していたこともできる。
ここで覚えられること

履歴の参照と復元(復習)
 git log / git checkout
ブランチの作成、切り替え
 git checkout
マージ
 git merge
小ネタ: GitのGUI
小ネタ: GitのGUI

ごめん、しらん。
小ネタ: GitのGUI

ごめん、しらん。
でも評価が高いの
はSourceTree。
小ネタ: GitのGUI

ごめん、しらん。
でも評価が高いの
はSourceTree。
アイコンとか格好い
いし。
小ネタ: GitのGUI

ごめん、しらん。
でも評価が高いの
はSourceTree。
アイコンとか格好い
いし。
一昨日(2/14)
Windows用の
betaが出たとこ。
Step3
共有、そのいち
共有、ひとりで。



共有って辞書には「二人以上で」とか書
いてるから日本語的に駄目な気がしな
くもないけど気にしないでください。
共有のやりかた

手動
  (USBメモリやネットワークなど)何ら
  かの手段でファイルをやりとりする。
Subversion
  サーバーを介してやりとりする。
Git
  リポジトリ間で履歴をやりとりする。
いめーじ
ありそうな問題

手動
  手段に応じた不確かさ
  最新はともかくバージョンは厳しい
Subversion
  サーバーを用意しなきゃいけない
  一人じゃコストに見合わないかも
Gitでの解決

「サーバー」を用意しなくていい
  それぞれのGitリポジトリが単独で
  完全なので。
単なるファイルなので”Gitリポジトリを
入れたUSBメモリ”でもOK
  Dropboxとか地味に使えたり
ここで覚えられること

リポジトリの複製
 git clone
他のリポジトリからの変更のとりこみ
 git pull
他のリポジトリに変更を送り込む
 git push
補足

clone しなくてもディレクトリまるごと
コピーでも問題無かったりする。
  その場合 pull とかするときにとって
  くる所を指定しなきゃいけない。
全部 pull だけでもできなくはない。
  お互いに繋がってれば。
Step4
共有、そのに
状況


複数のバージョンが同時に存在する。
(少なくとも)片方のバージョンの更新に
追従しなくてはいけない。
  バグ修正とか。
手動でやる
Subversionでやる
Gitでやる
複数バージョン並行

手動
  ディレクトリを丸ごとコピー
Subversion
  ブランチを別々にチェックアウト
Git
  ディレクトリを丸ごとコピー
  もしくはclone
複数バージョン並行の問題

手動
  差分をdiffとったりしてやるんだろう
  けど……
  追跡がぶっちゃけ無理ゲー。
Subversion/Git
  特に問題無く機能する。
ここで覚えられること



ありません。
だって今までのでいけるし。
まとめ(Git)
Gitのいいとこ

段階的な代替利用ができる
 一気に使いこなせなくてもいい。
 「日付ディレクトリの代わり」だけでも
 十二分に役に立つ。
   ここで Subversion を使うのは
   コストに見合わなさそう。
Gitのいいとこ

一人で素振りしやすい
 Subversionの各操作をおっかな
 びっくりやったことのある人は多いの
 では。
 ほぼ全ての操作がローカルで完結
 するので、試しやすい。
 素振りしやすいのはとてもいい。
Gitのいいとこ


一人でも使える
 例えばチームがSubversionを使っ
 ていても、余裕で共存出来る。
 1. git-svnを使う
 2. 無視して init しちゃう。
Gitのいいとこ

ローカルで完全なリポジトリ
 履歴の閲覧もファイルの復元も、全
 部ローカルの操作なので早い。
 早いから色々試せる。
  「時間かかるから諦めてた」ような
  問題が解決出来る。
Gitのいいとこ


コミット/ブランチの軽さ
 軽いから使いやすい
 使いこむから使いこなせる
 さらに使いやすくなる
Gitのいいとこ


さらに先に進める。
 分散ゆえの強みとかチームでの運
 用とかは次回以降に聞けるんじゃな
 いかな。
DVCSが解決する問題

なんとかしてる問題
 「コストかかるし手動でいいや」は見
 直していいんじゃないか。
気付いていない問題なのか。
 VCSが使いこなせてない理由はサー
 バーが遅い点にあるのでは。
まとめ(道具)
道具は重要
けど”最も重要”ではない
道具を “ドウデモイイ” と言
うために、道具の選択肢を
増やす。
問題を解決出来るなら、道
具なんてどうでも良い。
一方で、道具を蔑ろにすると
選択肢すら出て来ない。
道具には問題に対応するパ
ターンが詰まっている。
道具を学ぶことで解法が身に
付く。かもしれない。
おわり

Mais conteúdo relacionado

Semelhante a 道具としてのDVCS

Git flow概要紹介
Git flow概要紹介Git flow概要紹介
Git flow概要紹介y42sora
 
GitHub入門 手順編
GitHub入門 手順編GitHub入門 手順編
GitHub入門 手順編hideaki honda
 
ノンプログラマのGit入門
ノンプログラマのGit入門ノンプログラマのGit入門
ノンプログラマのGit入門Muyuu Fujita
 
今日から始めるGithub
今日から始めるGithub今日から始めるGithub
今日から始めるGithublion-man
 
社内Git勉強会向け資料
社内Git勉強会向け資料社内Git勉強会向け資料
社内Git勉強会向け資料Hiroki Saiki
 
よく固まってしまうPCでスムーズに仕事するためにした8のこと
よく固まってしまうPCでスムーズに仕事するためにした8のことよく固まってしまうPCでスムーズに仕事するためにした8のこと
よく固まってしまうPCでスムーズに仕事するためにした8のこと由美 木田
 
Debug Hacks出版記念トークイベント、新宿ジュンク堂
Debug Hacks出版記念トークイベント、新宿ジュンク堂Debug Hacks出版記念トークイベント、新宿ジュンク堂
Debug Hacks出版記念トークイベント、新宿ジュンク堂Hiro Yoshioka
 

Semelhante a 道具としてのDVCS (8)

Git flow概要紹介
Git flow概要紹介Git flow概要紹介
Git flow概要紹介
 
GitHub入門 手順編
GitHub入門 手順編GitHub入門 手順編
GitHub入門 手順編
 
ノンプログラマのGit入門
ノンプログラマのGit入門ノンプログラマのGit入門
ノンプログラマのGit入門
 
今日から始めるGithub
今日から始めるGithub今日から始めるGithub
今日から始めるGithub
 
Gitの使い方
Gitの使い方Gitの使い方
Gitの使い方
 
社内Git勉強会向け資料
社内Git勉強会向け資料社内Git勉強会向け資料
社内Git勉強会向け資料
 
よく固まってしまうPCでスムーズに仕事するためにした8のこと
よく固まってしまうPCでスムーズに仕事するためにした8のことよく固まってしまうPCでスムーズに仕事するためにした8のこと
よく固まってしまうPCでスムーズに仕事するためにした8のこと
 
Debug Hacks出版記念トークイベント、新宿ジュンク堂
Debug Hacks出版記念トークイベント、新宿ジュンク堂Debug Hacks出版記念トークイベント、新宿ジュンク堂
Debug Hacks出版記念トークイベント、新宿ジュンク堂
 

Último

情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法ssuser370dd7
 
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-LoopへTetsuya Nihonmatsu
 
2024 01 Virtual_Counselor
2024 01 Virtual_Counselor 2024 01 Virtual_Counselor
2024 01 Virtual_Counselor arts yokohama
 
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦Sadao Tokuyama
 
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)ssuser539845
 
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~arts yokohama
 
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見Shumpei Kishi
 
20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdfAyachika Kitazaki
 
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfTaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfMatsushita Laboratory
 

Último (12)

What is the world where you can make your own semiconductors?
What is the world where you can make your own semiconductors?What is the world where you can make your own semiconductors?
What is the world where you can make your own semiconductors?
 
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
 
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
 
2024 01 Virtual_Counselor
2024 01 Virtual_Counselor 2024 01 Virtual_Counselor
2024 01 Virtual_Counselor
 
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
 
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
 
2024 03 CTEA
2024 03 CTEA2024 03 CTEA
2024 03 CTEA
 
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
 
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
 
20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf
 
2024 04 minnanoito
2024 04 minnanoito2024 04 minnanoito
2024 04 minnanoito
 
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfTaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
 

道具としてのDVCS