SlideShare a Scribd company logo
1 of 60
Download to read offline
ぎっとの「ぎ」
gitのさいしょのはじめのいっぽ
※注意
   わかりやすい表現をするために
    このスライドには
    「正確にはそれ違うんじゃね?」
    的な表現が含まれています。
   知ってる人には喉に小骨が引っかかっ
    たみたいな違和感が発生する可能性が
    ありますがご了承ください。
Question?
   バージョン管理システムがよく分からない
Question?
   バージョン管理システムがよく分からない
   何らかのバージョン管理システムを
    使ったことがある
Question?
   バージョン管理システムがよく分からない
   何らかのバージョン管理システムを
    使ったことがある
   gitよく分からないけど
    言われるがまま使っている
Question?
   バージョン管理システムがよく分からない
   何らかのバージョン管理システムを
    使ったことがある
   gitよく分からないけど
    言われるがまま使っている
   コミットグラフを理解している
Question?
   バージョン管理システムがよく分からない
   何らかのバージョン管理システムを
    使ったことがある
   gitよく分からないけど
    言われるがまま使っている
   コミットグラフを理解している
   全ての宇宙、過去と未来
    全ての歴史を支配下に置いている
Question?
    バージョン管理システムがよく分からない
    何らかのバージョン管理システムを
     使ったことがある
    gitよく分からないけど
     言われるがまま使っている
    コミットグラフを理解している
    全ての宇宙、過去と未来
     全ての歴史を支配下に置いている


最後まで当てはまった方は5分くらい寝てて大丈夫です
このへんの話をします

       ぎっとの「ぎ」

          git

         闇のgit

        深淵のgit




        最果てのgit
バージョン管理システム?




     ↑
    これを
バージョン管理システム?

                   ○月○日Aさんが編集した版



        仕様書       ○月○日Cさんが編集した版


               ○月○日Bさんが編集した版


 最新だよ
              ○月○日Aさんが編集した版



      ↑
こんな感じで管理してくれる
リポジトリ?




                  ○月○日Aさんが編集した版



       仕様書       ○月○日Cさんが編集した版


              ○月○日Bさんが編集した版


最新だよ
             ○月○日Aさんが編集した版        ←これ
       歴史の貯蔵庫
いったんまとめると
   バージョン管理システム
    ◦ “版”を管理してくれる人
    ◦ いつ、誰が、何の理由で、何を変更した
      かを覚えておいてくれる
   リポジトリ
    ◦ 全ての宇宙、過去と未来、全ての歴史の
      詰まった倉庫みたいなもの
    ◦ アカシック・レコード
ぎっとの「ぎ」
ぎっとの「ぎ」
   バージョン管理システムの中でも分散バージョン
    管理システム(DVCS)と呼ばれるカテゴリに属する
    ツール
   歴史をリビジョンではなくコミットグラフとして
    捉える
 履歴管理と言うよりはどちらかと言うとコミット
  グラフ操作ツールとしての色合いが強い
 柔軟(過ぎる)コミットグラフ編集機能が特徴
ぎっとの「ぎ」
   バージョン管理システムの中でも分散バージョン
    管理システム(DVCS)と呼ばれるカテゴリに属する
    ツール
   歴史をリビジョンではなくコミットグラフとして
    捉える
 履歴管理と言うよりはどちらかと言うとコミット
  グラフ操作ツールとしての色合いが強い
 柔軟(過ぎる)コミットグラフ編集機能が特徴




    みたいな話はしません
あじぇんだ
 clone
 commit (add)
 push
 pull
くろーん?
( ^ω^)
 ソースここにあるからリポジトリcloneしといて
くろーん?
( ^ω^)
 ソースここにあるからリポジトリcloneしといて

                     (^ω^;)
               (く、くろーん…?)0o
くろーん?
( ^ω^)
 ソースここにあるからリポジトリcloneしといて

                           (^ω^;)
                     (く、くろーん…?)0o

( ^ω^)
 git clone hogehoge/hugahuga って打てばいいから
くろーん?
( ^ω^)
 ソースここにあるからリポジトリcloneしといて

                           (^ω^;)
                     (く、くろーん…?)0o

( ^ω^)
 git clone hogehoge/hugahuga って打てばいいから


                    (^ω^;)
 (ダウンロードできたけど…何が起こったん…?)0o
くろーん?
   クローン = ソースのダウンロード?
    ◦ 大体合ってる
    ◦ 正確には履歴の複製
    ◦ リモートリポジトリからローカルへ
      履歴情報を複製する操作をcloneと言う
くろーん?
   クローン = ソースのダウンロード?
    ◦ 大体合ってる
    ◦ 正確には履歴の複製
    ◦ リモートリポジトリからローカルへ
      履歴情報を複製する操作をcloneと言う




    つまり…どういうことだってばよ?
くろーん?
みんなのサーバ




             アカシック・レコード




(^ω^)ぼくのPC       (゚∀゚)おれのPC
くろーん?
みんなのサーバ




          くろーん!




(^ω^)< くろーん!      (゚∀゚)
くろーん?
みんなのサーバ




(^ω^)< アカシック・レコードを手に入れたお   (゚∀゚)
くろーん?
みんなのサーバ




          くろーん!




(^ω^)     (゚∀゚)< くろーん!
くろーん?
みんなのサーバ




(^ω^)     (゚∀゚*)
くろーん?
みんなのサーバ




    ファイル群を含んだ歴史情報そのものを複製して
    自分専用のリポジトリを作る作業をクローンといいます




(^ω^)                    (゚∀゚)
くろーん?
   自分専用のリポジトリがあると?
    ◦ コミットしても見えるのは自分だけ
    ◦ 作業履歴として
      好きなだけコミットできる!
    ◦ 誰にも迷惑をかけずに
      自分だけの試行錯誤ができる!
    ◦ 外に出しても恥ずかしくなくなったら
      その時点でプッシュしよう
くろーん?
   自分専用のリポジトリがあると?
    ◦ コミットしても見えるのは自分だけ
    ◦ 作業履歴として
      好きなだけコミットできる!
    ◦ 誰にも迷惑をかけずに
      自分だけの試行錯誤ができる!
    ◦ 外に出しても恥ずかしくなくなったら
      その時点でプッシュしよう


(;^ω^)o0( コミット? プッシュ?)
こみっと?

                   ○月○日Aさんが編集した版



        仕様書       ○月○日Cさんが編集した版


               ○月○日Bさんが編集した版


 最新だよ
              ○月○日Aさんが編集した版




          これに
こみっと?

最新修正              ○月○日Aさんが編集した版


                  ○月○日Cさんが編集した版
       仕様書
               ○月○日Bさんが編集した版


             ○月○日Aさんが編集した版
最新だよ

       ○月○日Cさんが編集した版



         こうすること
こみっと?
   アカシック・レコードに
    新たな歴史を刻む
こみっと?
   アカシック・レコードに
    新たな歴史を刻む
    ◦ gitのコミットは2段階




        コミット候補
                     (^ω^ )
こみっと?
   アカシック・レコードに
    新たな歴史を刻む
    ◦ gitのコミットは2段階
    ◦ まずステージして




        コミット候補       ミ
                      ⊂(^ω^ )< git add
こみっと?
   アカシック・レコードに
    新たな歴史を刻む
    ◦ gitのコミットは2段階
    ◦ まずステージして




        コミット候補
                     (^ω^ )
こみっと?
   アカシック・レコードに
    新たな歴史を刻む
    ◦ gitのコミットは2段階
    ◦ まずステージして




        コミット候補       ミ
                      ⊂(^ω^ )< git add
こみっと?
   アカシック・レコードに
    新たな歴史を刻む
    ◦ gitのコミットは2段階
    ◦ まずステージして




        コミット候補
                     (^ω^ )
こみっと?
   アカシック・レコードに
    新たな歴史を刻む
    ◦ gitのコミットは2段階
    ◦ まずステージして




        コミット候補       ミ
                      ⊂(^ω^ )< git add
こみっと?
   アカシック・レコードに
    新たな歴史を刻む
    ◦ gitのコミットは2段階
    ◦ まずステージして
    ◦ それからコミット




        コミット候補
                     (^ω^ )< git commit
こみっと?
   アカシック・レコードに
    新たな歴史を刻む
    ◦ gitのコミットは2段階
    ◦ まずステージして
    ◦ それからコミット




        コミット候補
                     (^ω^ )
こみっと?
   アカシック・レコードに
    新たな歴史を刻む
    ◦ gitのコミットは2段階
    ◦ まずステージして
    ◦ それからコミット




        コミット候補
                     (^ω^ )
こみっと?
   アカシック・レコードに
    新たな歴史を刻む
    ◦ gitのコミットは2段階
    ◦ まずステージして
    ◦ それからコミット




        コミット候補
                     (^ω^ *)
今までの話は
みんなのサーバ




あくまで




(^ω^)     (゚∀゚)
みんなのサーバ




あくまで ここの話




(^ω^)       (゚∀゚)
みんなのサーバ




ここで刻んだ新たな歴史を




(^ω^)          (゚∀゚)
みんなのサーバ




みんなのサーバに公開しないと




(^ω^)            (゚∀゚)
みんなのサーバ




(^ω^)     この人に   (゚∀゚)
みんなのサーバ




          この変更は




(^ω^)        この人に   (゚∀゚)
みんなのサーバ




          この変更は
          伝わらない!


(^ω^)        この人に   (´・ω・`)
みんなのサーバ




    これがpush!




(^ω^)< git push   (゚∀゚)
\ てってれー /

みんなのサーバ




(^ω^)                 (゚∀゚)
みんなのサーバ




          pullするとみんなのサーバから
          変更点を取り込める




(^ω^)           (゚∀゚) < git pull
ぷっしゅ? / ぷる?
   ローカルで育てた自分だけの歴史を
    みんなで共有してる歴史へ合体させる
    それが「push」
    ◦ どういう感じで歴史が合体するのかは
      いくつか種類がある
    ◦ けど複雑になるので割愛
    ◦ 大体はgitさんがうまいことやってくれる
ぷっしゅ? / ぷる?
   みんなで共有してる歴史をローカルの
    自分だけの歴史へ合体させる
    それが「pull」
    ◦ どういう感じで歴史が合体するのかはい
      くつか種類があるし複雑になるので割愛
      するのも大体gitさんがうまいことやって
      くれるのもpushと同じ
    ◦ cloneと似たようなもん
      (そうとう乱暴だけれど)
まとめ
   clone
    ◦ 「みんなの歴史」をローカルに複製する
    ◦ 自分だけの作業履歴が持てるので
      hoge(修正前).txtみたいなファイルを作
      らなくても好きなだけ試行錯誤できる。
   commit
    ◦ 新しい歴史を創造する
    ◦ 目標をステージしてからコミット!
      目標をステージしてからコミット!
まとめ
   push
    ◦ 「みんなの歴史」
       ↑合体
      「自分の歴史」
   pull
    ◦ 「みんなの歴史」
       ↓合体
      「自分の歴史」
おわり

More Related Content

What's hot

Javaな人が今すぐ使えるG*
Javaな人が今すぐ使えるG*Javaな人が今すぐ使えるG*
Javaな人が今すぐ使えるG*irof N
 
Javascriptで無限ループを実現する5つの方法
Javascriptで無限ループを実現する5つの方法Javascriptで無限ループを実現する5つの方法
Javascriptで無限ループを実現する5つの方法yhara
 
本格的に始めるzsh
本格的に始めるzsh本格的に始めるzsh
本格的に始めるzshHideaki Miyake
 
第6回鹿児島node.jsの会資料_内村
第6回鹿児島node.jsの会資料_内村第6回鹿児島node.jsの会資料_内村
第6回鹿児島node.jsの会資料_内村Koichi Uchimura
 
Crystal勉強会#4 LT資料
Crystal勉強会#4 LT資料 Crystal勉強会#4 LT資料
Crystal勉強会#4 LT資料 Taichiro Suzuki
 
バージョン管理的な何か
バージョン管理的な何かバージョン管理的な何か
バージョン管理的な何かN Masahiro
 
30days Albumの裏側〜監視・インフラCI事情〜 #monitoringcasual
30days Albumの裏側〜監視・インフラCI事情〜 #monitoringcasual30days Albumの裏側〜監視・インフラCI事情〜 #monitoringcasual
30days Albumの裏側〜監視・インフラCI事情〜 #monitoringcasualTakahiro Okumura
 
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)Hiro H.
 
Rubyでバルクインサート
RubyでバルクインサートRubyでバルクインサート
RubyでバルクインサートFujimura Munehiko
 
minami.rb最初で最後のLT大会「Wakayama.rbの紹介」
minami.rb最初で最後のLT大会「Wakayama.rbの紹介」minami.rb最初で最後のLT大会「Wakayama.rbの紹介」
minami.rb最初で最後のLT大会「Wakayama.rbの紹介」三七男 山本
 
Interactive Music II Processing基本
Interactive Music II Processing基本Interactive Music II Processing基本
Interactive Music II Processing基本Atsushi Tadokoro
 
Tortoise gitで日本語ファイル名を使うときのgitの選択について
Tortoise gitで日本語ファイル名を使うときのgitの選択についてTortoise gitで日本語ファイル名を使うときのgitの選択について
Tortoise gitで日本語ファイル名を使うときのgitの選択についてKiyoshi SATOH
 
Postgre sql9.3新機能 (OSC hiroshima 2013)
Postgre sql9.3新機能 (OSC hiroshima 2013)Postgre sql9.3新機能 (OSC hiroshima 2013)
Postgre sql9.3新機能 (OSC hiroshima 2013)Soudai Sone
 
Interactive Music II SuperCollider入門 3 - 音を混ぜる(Mix)、楽器を定義(SynthDef)
Interactive Music II SuperCollider入門 3 - 音を混ぜる(Mix)、楽器を定義(SynthDef)Interactive Music II SuperCollider入門 3 - 音を混ぜる(Mix)、楽器を定義(SynthDef)
Interactive Music II SuperCollider入門 3 - 音を混ぜる(Mix)、楽器を定義(SynthDef)Atsushi Tadokoro
 
ejectLT @ NT金沢
ejectLT @ NT金沢ejectLT @ NT金沢
ejectLT @ NT金沢ahiru3
 
Play frameworkをエヴァンジェる
Play frameworkをエヴァンジェるPlay frameworkをエヴァンジェる
Play frameworkをエヴァンジェるke-m kamekoopa
 

What's hot (19)

Ruby on Windows
Ruby on WindowsRuby on Windows
Ruby on Windows
 
Javaな人が今すぐ使えるG*
Javaな人が今すぐ使えるG*Javaな人が今すぐ使えるG*
Javaな人が今すぐ使えるG*
 
Javascriptで無限ループを実現する5つの方法
Javascriptで無限ループを実現する5つの方法Javascriptで無限ループを実現する5つの方法
Javascriptで無限ループを実現する5つの方法
 
本格的に始めるzsh
本格的に始めるzsh本格的に始めるzsh
本格的に始めるzsh
 
第6回鹿児島node.jsの会資料_内村
第6回鹿児島node.jsの会資料_内村第6回鹿児島node.jsの会資料_内村
第6回鹿児島node.jsの会資料_内村
 
Crystal勉強会#4 LT資料
Crystal勉強会#4 LT資料 Crystal勉強会#4 LT資料
Crystal勉強会#4 LT資料
 
バージョン管理的な何か
バージョン管理的な何かバージョン管理的な何か
バージョン管理的な何か
 
30days Albumの裏側〜監視・インフラCI事情〜 #monitoringcasual
30days Albumの裏側〜監視・インフラCI事情〜 #monitoringcasual30days Albumの裏側〜監視・インフラCI事情〜 #monitoringcasual
30days Albumの裏側〜監視・インフラCI事情〜 #monitoringcasual
 
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
 
Rubyでバルクインサート
RubyでバルクインサートRubyでバルクインサート
Rubyでバルクインサート
 
Btrfs
BtrfsBtrfs
Btrfs
 
minami.rb最初で最後のLT大会「Wakayama.rbの紹介」
minami.rb最初で最後のLT大会「Wakayama.rbの紹介」minami.rb最初で最後のLT大会「Wakayama.rbの紹介」
minami.rb最初で最後のLT大会「Wakayama.rbの紹介」
 
ログ可視化の話
ログ可視化の話ログ可視化の話
ログ可視化の話
 
Interactive Music II Processing基本
Interactive Music II Processing基本Interactive Music II Processing基本
Interactive Music II Processing基本
 
Tortoise gitで日本語ファイル名を使うときのgitの選択について
Tortoise gitで日本語ファイル名を使うときのgitの選択についてTortoise gitで日本語ファイル名を使うときのgitの選択について
Tortoise gitで日本語ファイル名を使うときのgitの選択について
 
Postgre sql9.3新機能 (OSC hiroshima 2013)
Postgre sql9.3新機能 (OSC hiroshima 2013)Postgre sql9.3新機能 (OSC hiroshima 2013)
Postgre sql9.3新機能 (OSC hiroshima 2013)
 
Interactive Music II SuperCollider入門 3 - 音を混ぜる(Mix)、楽器を定義(SynthDef)
Interactive Music II SuperCollider入門 3 - 音を混ぜる(Mix)、楽器を定義(SynthDef)Interactive Music II SuperCollider入門 3 - 音を混ぜる(Mix)、楽器を定義(SynthDef)
Interactive Music II SuperCollider入門 3 - 音を混ぜる(Mix)、楽器を定義(SynthDef)
 
ejectLT @ NT金沢
ejectLT @ NT金沢ejectLT @ NT金沢
ejectLT @ NT金沢
 
Play frameworkをエヴァンジェる
Play frameworkをエヴァンジェるPlay frameworkをエヴァンジェる
Play frameworkをエヴァンジェる
 

Viewers also liked

~ Cloud First から Cloud Optimized へ ~ .NET on Cloud が描くモダナイゼーション
~ Cloud First から Cloud Optimized へ ~ .NET on Cloud が描くモダナイゼーション~ Cloud First から Cloud Optimized へ ~ .NET on Cloud が描くモダナイゼーション
~ Cloud First から Cloud Optimized へ ~ .NET on Cloud が描くモダナイゼーションAkira Inoue
 
Summer camp for kids in Kolkata
Summer camp for kids in KolkataSummer camp for kids in Kolkata
Summer camp for kids in KolkataGenius Kids India
 
How Summer Camp Builds Self-Confidence
How Summer Camp Builds Self-ConfidenceHow Summer Camp Builds Self-Confidence
How Summer Camp Builds Self-ConfidenceBuzz Marketing Pros
 
Music Video Pitch
Music Video PitchMusic Video Pitch
Music Video Pitchsybz
 
Cuestionario de compu
Cuestionario de compuCuestionario de compu
Cuestionario de compuvaleryn92
 
Protect Office 365 data on unmanaged devices.PDF
Protect Office 365 data on unmanaged devices.PDFProtect Office 365 data on unmanaged devices.PDF
Protect Office 365 data on unmanaged devices.PDFJoseph Glocke
 
Re-Connecting the World's Children To Nature
Re-Connecting the World's Children To NatureRe-Connecting the World's Children To Nature
Re-Connecting the World's Children To NatureKlausGroenholm
 
French: Ramadan Message Of President Obama
French: Ramadan Message Of President Obama French: Ramadan Message Of President Obama
French: Ramadan Message Of President Obama Obama White House
 
OpenDocument interoperability test workshop after story
OpenDocument interoperability test workshop after storyOpenDocument interoperability test workshop after story
OpenDocument interoperability test workshop after storyMakoto Takizawa
 
Music video pitch
Music video pitchMusic video pitch
Music video pitchsybz
 
Letter to President Obama on Industry Trade Advisory Committees
Letter to President Obama on Industry Trade Advisory CommitteesLetter to President Obama on Industry Trade Advisory Committees
Letter to President Obama on Industry Trade Advisory CommitteesObama White House
 

Viewers also liked (20)

~ Cloud First から Cloud Optimized へ ~ .NET on Cloud が描くモダナイゼーション
~ Cloud First から Cloud Optimized へ ~ .NET on Cloud が描くモダナイゼーション~ Cloud First から Cloud Optimized へ ~ .NET on Cloud が描くモダナイゼーション
~ Cloud First から Cloud Optimized へ ~ .NET on Cloud が描くモダナイゼーション
 
Summer camp for kids in Kolkata
Summer camp for kids in KolkataSummer camp for kids in Kolkata
Summer camp for kids in Kolkata
 
How Summer Camp Builds Self-Confidence
How Summer Camp Builds Self-ConfidenceHow Summer Camp Builds Self-Confidence
How Summer Camp Builds Self-Confidence
 
Music Video Pitch
Music Video PitchMusic Video Pitch
Music Video Pitch
 
CEQ Annual FOIA 2006 Report
CEQ Annual FOIA 2006 ReportCEQ Annual FOIA 2006 Report
CEQ Annual FOIA 2006 Report
 
Cuestionario de compu
Cuestionario de compuCuestionario de compu
Cuestionario de compu
 
Protect Office 365 data on unmanaged devices.PDF
Protect Office 365 data on unmanaged devices.PDFProtect Office 365 data on unmanaged devices.PDF
Protect Office 365 data on unmanaged devices.PDF
 
Re-Connecting the World's Children To Nature
Re-Connecting the World's Children To NatureRe-Connecting the World's Children To Nature
Re-Connecting the World's Children To Nature
 
French: Ramadan Message Of President Obama
French: Ramadan Message Of President Obama French: Ramadan Message Of President Obama
French: Ramadan Message Of President Obama
 
SERA Email 1.20.03
SERA Email 1.20.03SERA Email 1.20.03
SERA Email 1.20.03
 
OpenDocument interoperability test workshop after story
OpenDocument interoperability test workshop after storyOpenDocument interoperability test workshop after story
OpenDocument interoperability test workshop after story
 
Economic times 26.03.14.
Economic times   26.03.14.Economic times   26.03.14.
Economic times 26.03.14.
 
GÊNESIS 10
GÊNESIS 10GÊNESIS 10
GÊNESIS 10
 
Music video pitch
Music video pitchMusic video pitch
Music video pitch
 
RCEC Email 4.16.03
RCEC Email 4.16.03RCEC Email 4.16.03
RCEC Email 4.16.03
 
FOTOinformator 1/2017
FOTOinformator 1/2017FOTOinformator 1/2017
FOTOinformator 1/2017
 
SERA Email 2.6.03
SERA Email 2.6.03SERA Email 2.6.03
SERA Email 2.6.03
 
La Recreación
La RecreaciónLa Recreación
La Recreación
 
Letter to President Obama on Industry Trade Advisory Committees
Letter to President Obama on Industry Trade Advisory CommitteesLetter to President Obama on Industry Trade Advisory Committees
Letter to President Obama on Industry Trade Advisory Committees
 
Tresloucado amor
Tresloucado amorTresloucado amor
Tresloucado amor
 

Similar to ぎっとの「ぎ」

2018 07-18 git-hub講座
2018 07-18 git-hub講座2018 07-18 git-hub講座
2018 07-18 git-hub講座貴一 末田
 
Github勉強会
Github勉強会Github勉強会
Github勉強会From Atom
 
伺うかのうだうだぐだぐだ
伺うかのうだうだぐだぐだ伺うかのうだうだぐだぐだ
伺うかのうだうだぐだぐだwizstargaer
 
Gc 擬(もどき)を js で書いてみた
Gc 擬(もどき)を js で書いてみた Gc 擬(もどき)を js で書いてみた
Gc 擬(もどき)を js で書いてみた to_ueda
 
15分でわかるGit入門
15分でわかるGit入門15分でわかるGit入門
15分でわかるGit入門to_ueda
 
ocamloptの全体像
ocamloptの全体像ocamloptの全体像
ocamloptの全体像Kiwamu Okabe
 
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜Takashi Uemura
 
20130622 r pi-ug-osc13ng
20130622 r pi-ug-osc13ng20130622 r pi-ug-osc13ng
20130622 r pi-ug-osc13ngAkira Ouchi
 
Gitとちょっと仲良くなるために覚えたことまとめ
Gitとちょっと仲良くなるために覚えたことまとめGitとちょっと仲良くなるために覚えたことまとめ
Gitとちょっと仲良くなるために覚えたことまとめNatsumi Kashiwa
 
ノンプログラマのGit入門
ノンプログラマのGit入門ノンプログラマのGit入門
ノンプログラマのGit入門Muyuu Fujita
 
gitを使って、レポジトリの一部抽出forkしてみました
gitを使って、レポジトリの一部抽出forkしてみましたgitを使って、レポジトリの一部抽出forkしてみました
gitを使って、レポジトリの一部抽出forkしてみましたTakako Miyagawa
 
Gitと出会って人生変わった テックヒルズ2013-03-22
Gitと出会って人生変わった テックヒルズ2013-03-22Gitと出会って人生変わった テックヒルズ2013-03-22
Gitと出会って人生変わった テックヒルズ2013-03-22Shota Umeda
 
底辺webプログラマが今更git語ってみた
底辺webプログラマが今更git語ってみた底辺webプログラマが今更git語ってみた
底辺webプログラマが今更git語ってみたYudai Fujita
 
Gitで始めるバージョン管理
Gitで始めるバージョン管理Gitで始めるバージョン管理
Gitで始めるバージョン管理Daisuke Konishi
 
f3js - JS Board Shibuya #6 LT
f3js - JS Board Shibuya #6 LTf3js - JS Board Shibuya #6 LT
f3js - JS Board Shibuya #6 LTJun Kato
 
mbedではじめる組み込みHaskellプログラミング
mbedではじめる組み込みHaskellプログラミングmbedではじめる組み込みHaskellプログラミング
mbedではじめる組み込みHaskellプログラミングKiwamu Okabe
 
ウカガカ動画(¥e)
ウカガカ動画(¥e)ウカガカ動画(¥e)
ウカガカ動画(¥e)wizstargaer
 

Similar to ぎっとの「ぎ」 (20)

2018 07-18 git-hub講座
2018 07-18 git-hub講座2018 07-18 git-hub講座
2018 07-18 git-hub講座
 
Github勉強会
Github勉強会Github勉強会
Github勉強会
 
伺うかのうだうだぐだぐだ
伺うかのうだうだぐだぐだ伺うかのうだうだぐだぐだ
伺うかのうだうだぐだぐだ
 
Gc 擬(もどき)を js で書いてみた
Gc 擬(もどき)を js で書いてみた Gc 擬(もどき)を js で書いてみた
Gc 擬(もどき)を js で書いてみた
 
15分でわかるGit入門
15分でわかるGit入門15分でわかるGit入門
15分でわかるGit入門
 
ocamloptの全体像
ocamloptの全体像ocamloptの全体像
ocamloptの全体像
 
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
 
20130622 r pi-ug-osc13ng
20130622 r pi-ug-osc13ng20130622 r pi-ug-osc13ng
20130622 r pi-ug-osc13ng
 
Gitとちょっと仲良くなるために覚えたことまとめ
Gitとちょっと仲良くなるために覚えたことまとめGitとちょっと仲良くなるために覚えたことまとめ
Gitとちょっと仲良くなるために覚えたことまとめ
 
ノンプログラマのGit入門
ノンプログラマのGit入門ノンプログラマのGit入門
ノンプログラマのGit入門
 
gitを使って、レポジトリの一部抽出forkしてみました
gitを使って、レポジトリの一部抽出forkしてみましたgitを使って、レポジトリの一部抽出forkしてみました
gitを使って、レポジトリの一部抽出forkしてみました
 
Gitと出会って人生変わった テックヒルズ2013-03-22
Gitと出会って人生変わった テックヒルズ2013-03-22Gitと出会って人生変わった テックヒルズ2013-03-22
Gitと出会って人生変わった テックヒルズ2013-03-22
 
Gitのすすめ
GitのすすめGitのすすめ
Gitのすすめ
 
底辺webプログラマが今更git語ってみた
底辺webプログラマが今更git語ってみた底辺webプログラマが今更git語ってみた
底辺webプログラマが今更git語ってみた
 
Gitで始めるバージョン管理
Gitで始めるバージョン管理Gitで始めるバージョン管理
Gitで始めるバージョン管理
 
ゼミGit
ゼミGitゼミGit
ゼミGit
 
f3js - JS Board Shibuya #6 LT
f3js - JS Board Shibuya #6 LTf3js - JS Board Shibuya #6 LT
f3js - JS Board Shibuya #6 LT
 
Yahoo! JAPAN MEETUP #21~Gitを使ったチーム開発体験@名古屋~
Yahoo! JAPAN MEETUP #21~Gitを使ったチーム開発体験@名古屋~ Yahoo! JAPAN MEETUP #21~Gitを使ったチーム開発体験@名古屋~
Yahoo! JAPAN MEETUP #21~Gitを使ったチーム開発体験@名古屋~
 
mbedではじめる組み込みHaskellプログラミング
mbedではじめる組み込みHaskellプログラミングmbedではじめる組み込みHaskellプログラミング
mbedではじめる組み込みHaskellプログラミング
 
ウカガカ動画(¥e)
ウカガカ動画(¥e)ウカガカ動画(¥e)
ウカガカ動画(¥e)
 

More from ke-m kamekoopa

SQLアンチパターン - ナイーブツリー
SQLアンチパターン - ナイーブツリーSQLアンチパターン - ナイーブツリー
SQLアンチパターン - ナイーブツリーke-m kamekoopa
 
SQLアンチパターン - ジェイウォーク
SQLアンチパターン - ジェイウォークSQLアンチパターン - ジェイウォーク
SQLアンチパターン - ジェイウォークke-m kamekoopa
 
設計してますか?
設計してますか?設計してますか?
設計してますか?ke-m kamekoopa
 
Interlli jとplayとjavaとscala
Interlli jとplayとjavaとscalaInterlli jとplayとjavaとscala
Interlli jとplayとjavaとscalake-m kamekoopa
 
関数型もモナドも分からなくてもScalaと言う言語は便利らしい
関数型もモナドも分からなくてもScalaと言う言語は便利らしい関数型もモナドも分からなくてもScalaと言う言語は便利らしい
関数型もモナドも分からなくてもScalaと言う言語は便利らしいke-m kamekoopa
 
デプロイツールFabric
デプロイツールFabricデプロイツールFabric
デプロイツールFabricke-m kamekoopa
 
Playで作るwebsocketサーバ
Playで作るwebsocketサーバPlayで作るwebsocketサーバ
Playで作るwebsocketサーバke-m kamekoopa
 
デプロイメントパイプラインって何?
デプロイメントパイプラインって何?デプロイメントパイプラインって何?
デプロイメントパイプラインって何?ke-m kamekoopa
 
継続的にデリバリーって何?
継続的にデリバリーって何?継続的にデリバリーって何?
継続的にデリバリーって何?ke-m kamekoopa
 

More from ke-m kamekoopa (15)

Kvwatcher
KvwatcherKvwatcher
Kvwatcher
 
PyKon JP 2014
PyKon JP 2014PyKon JP 2014
PyKon JP 2014
 
Scala.js
Scala.jsScala.js
Scala.js
 
SQLアンチパターン - ナイーブツリー
SQLアンチパターン - ナイーブツリーSQLアンチパターン - ナイーブツリー
SQLアンチパターン - ナイーブツリー
 
SQLアンチパターン - ジェイウォーク
SQLアンチパターン - ジェイウォークSQLアンチパターン - ジェイウォーク
SQLアンチパターン - ジェイウォーク
 
設計してますか?
設計してますか?設計してますか?
設計してますか?
 
Interlli jとplayとjavaとscala
Interlli jとplayとjavaとscalaInterlli jとplayとjavaとscala
Interlli jとplayとjavaとscala
 
関数型もモナドも分からなくてもScalaと言う言語は便利らしい
関数型もモナドも分からなくてもScalaと言う言語は便利らしい関数型もモナドも分からなくてもScalaと言う言語は便利らしい
関数型もモナドも分からなくてもScalaと言う言語は便利らしい
 
デプロイツールFabric
デプロイツールFabricデプロイツールFabric
デプロイツールFabric
 
Playで作るwebsocketサーバ
Playで作るwebsocketサーバPlayで作るwebsocketサーバ
Playで作るwebsocketサーバ
 
# Rabbitサンプル
# Rabbitサンプル# Rabbitサンプル
# Rabbitサンプル
 
デプロイメントパイプラインって何?
デプロイメントパイプラインって何?デプロイメントパイプラインって何?
デプロイメントパイプラインって何?
 
継続的にデリバリーって何?
継続的にデリバリーって何?継続的にデリバリーって何?
継続的にデリバリーって何?
 
Php5.4
Php5.4Php5.4
Php5.4
 
Test
TestTest
Test
 

ぎっとの「ぎ」

  • 2. ※注意  わかりやすい表現をするために このスライドには 「正確にはそれ違うんじゃね?」 的な表現が含まれています。  知ってる人には喉に小骨が引っかかっ たみたいな違和感が発生する可能性が ありますがご了承ください。
  • 3. Question?  バージョン管理システムがよく分からない
  • 4. Question?  バージョン管理システムがよく分からない  何らかのバージョン管理システムを 使ったことがある
  • 5. Question?  バージョン管理システムがよく分からない  何らかのバージョン管理システムを 使ったことがある  gitよく分からないけど 言われるがまま使っている
  • 6. Question?  バージョン管理システムがよく分からない  何らかのバージョン管理システムを 使ったことがある  gitよく分からないけど 言われるがまま使っている  コミットグラフを理解している
  • 7. Question?  バージョン管理システムがよく分からない  何らかのバージョン管理システムを 使ったことがある  gitよく分からないけど 言われるがまま使っている  コミットグラフを理解している  全ての宇宙、過去と未来 全ての歴史を支配下に置いている
  • 8. Question?  バージョン管理システムがよく分からない  何らかのバージョン管理システムを 使ったことがある  gitよく分からないけど 言われるがまま使っている  コミットグラフを理解している  全ての宇宙、過去と未来 全ての歴史を支配下に置いている 最後まで当てはまった方は5分くらい寝てて大丈夫です
  • 9. このへんの話をします ぎっとの「ぎ」 git 闇のgit 深淵のgit 最果てのgit
  • 11. バージョン管理システム? ○月○日Aさんが編集した版 仕様書 ○月○日Cさんが編集した版 ○月○日Bさんが編集した版 最新だよ ○月○日Aさんが編集した版 ↑ こんな感じで管理してくれる
  • 12. リポジトリ? ○月○日Aさんが編集した版 仕様書 ○月○日Cさんが編集した版 ○月○日Bさんが編集した版 最新だよ ○月○日Aさんが編集した版 ←これ 歴史の貯蔵庫
  • 13. いったんまとめると  バージョン管理システム ◦ “版”を管理してくれる人 ◦ いつ、誰が、何の理由で、何を変更した かを覚えておいてくれる  リポジトリ ◦ 全ての宇宙、過去と未来、全ての歴史の 詰まった倉庫みたいなもの ◦ アカシック・レコード
  • 15. ぎっとの「ぎ」  バージョン管理システムの中でも分散バージョン 管理システム(DVCS)と呼ばれるカテゴリに属する ツール  歴史をリビジョンではなくコミットグラフとして 捉える  履歴管理と言うよりはどちらかと言うとコミット グラフ操作ツールとしての色合いが強い  柔軟(過ぎる)コミットグラフ編集機能が特徴
  • 16. ぎっとの「ぎ」  バージョン管理システムの中でも分散バージョン 管理システム(DVCS)と呼ばれるカテゴリに属する ツール  歴史をリビジョンではなくコミットグラフとして 捉える  履歴管理と言うよりはどちらかと言うとコミット グラフ操作ツールとしての色合いが強い  柔軟(過ぎる)コミットグラフ編集機能が特徴 みたいな話はしません
  • 17. あじぇんだ  clone  commit (add)  push  pull
  • 20. くろーん? ( ^ω^) ソースここにあるからリポジトリcloneしといて (^ω^;) (く、くろーん…?)0o ( ^ω^) git clone hogehoge/hugahuga って打てばいいから
  • 21. くろーん? ( ^ω^) ソースここにあるからリポジトリcloneしといて (^ω^;) (く、くろーん…?)0o ( ^ω^) git clone hogehoge/hugahuga って打てばいいから (^ω^;) (ダウンロードできたけど…何が起こったん…?)0o
  • 22. くろーん?  クローン = ソースのダウンロード? ◦ 大体合ってる ◦ 正確には履歴の複製 ◦ リモートリポジトリからローカルへ 履歴情報を複製する操作をcloneと言う
  • 23. くろーん?  クローン = ソースのダウンロード? ◦ 大体合ってる ◦ 正確には履歴の複製 ◦ リモートリポジトリからローカルへ 履歴情報を複製する操作をcloneと言う つまり…どういうことだってばよ?
  • 24. くろーん? みんなのサーバ アカシック・レコード (^ω^)ぼくのPC (゚∀゚)おれのPC
  • 25. くろーん? みんなのサーバ くろーん! (^ω^)< くろーん! (゚∀゚)
  • 27. くろーん? みんなのサーバ くろーん! (^ω^) (゚∀゚)< くろーん!
  • 29. くろーん? みんなのサーバ ファイル群を含んだ歴史情報そのものを複製して 自分専用のリポジトリを作る作業をクローンといいます (^ω^) (゚∀゚)
  • 30. くろーん?  自分専用のリポジトリがあると? ◦ コミットしても見えるのは自分だけ ◦ 作業履歴として 好きなだけコミットできる! ◦ 誰にも迷惑をかけずに 自分だけの試行錯誤ができる! ◦ 外に出しても恥ずかしくなくなったら その時点でプッシュしよう
  • 31. くろーん?  自分専用のリポジトリがあると? ◦ コミットしても見えるのは自分だけ ◦ 作業履歴として 好きなだけコミットできる! ◦ 誰にも迷惑をかけずに 自分だけの試行錯誤ができる! ◦ 外に出しても恥ずかしくなくなったら その時点でプッシュしよう (;^ω^)o0( コミット? プッシュ?)
  • 32. こみっと? ○月○日Aさんが編集した版 仕様書 ○月○日Cさんが編集した版 ○月○日Bさんが編集した版 最新だよ ○月○日Aさんが編集した版 これに
  • 33. こみっと? 最新修正 ○月○日Aさんが編集した版 ○月○日Cさんが編集した版 仕様書 ○月○日Bさんが編集した版 ○月○日Aさんが編集した版 最新だよ ○月○日Cさんが編集した版 こうすること
  • 34. こみっと?  アカシック・レコードに 新たな歴史を刻む
  • 35. こみっと?  アカシック・レコードに 新たな歴史を刻む ◦ gitのコミットは2段階 コミット候補 (^ω^ )
  • 36. こみっと?  アカシック・レコードに 新たな歴史を刻む ◦ gitのコミットは2段階 ◦ まずステージして コミット候補 ミ ⊂(^ω^ )< git add
  • 37. こみっと?  アカシック・レコードに 新たな歴史を刻む ◦ gitのコミットは2段階 ◦ まずステージして コミット候補 (^ω^ )
  • 38. こみっと?  アカシック・レコードに 新たな歴史を刻む ◦ gitのコミットは2段階 ◦ まずステージして コミット候補 ミ ⊂(^ω^ )< git add
  • 39. こみっと?  アカシック・レコードに 新たな歴史を刻む ◦ gitのコミットは2段階 ◦ まずステージして コミット候補 (^ω^ )
  • 40. こみっと?  アカシック・レコードに 新たな歴史を刻む ◦ gitのコミットは2段階 ◦ まずステージして コミット候補 ミ ⊂(^ω^ )< git add
  • 41. こみっと?  アカシック・レコードに 新たな歴史を刻む ◦ gitのコミットは2段階 ◦ まずステージして ◦ それからコミット コミット候補 (^ω^ )< git commit
  • 42. こみっと?  アカシック・レコードに 新たな歴史を刻む ◦ gitのコミットは2段階 ◦ まずステージして ◦ それからコミット コミット候補 (^ω^ )
  • 43. こみっと?  アカシック・レコードに 新たな歴史を刻む ◦ gitのコミットは2段階 ◦ まずステージして ◦ それからコミット コミット候補 (^ω^ )
  • 44. こみっと?  アカシック・レコードに 新たな歴史を刻む ◦ gitのコミットは2段階 ◦ まずステージして ◦ それからコミット コミット候補 (^ω^ *)
  • 50. みんなのサーバ (^ω^) この人に (゚∀゚)
  • 51. みんなのサーバ この変更は (^ω^) この人に (゚∀゚)
  • 52. みんなのサーバ この変更は 伝わらない! (^ω^) この人に (´・ω・`)
  • 53. みんなのサーバ これがpush! (^ω^)< git push (゚∀゚)
  • 55. みんなのサーバ pullするとみんなのサーバから 変更点を取り込める (^ω^) (゚∀゚) < git pull
  • 56. ぷっしゅ? / ぷる?  ローカルで育てた自分だけの歴史を みんなで共有してる歴史へ合体させる それが「push」 ◦ どういう感じで歴史が合体するのかは いくつか種類がある ◦ けど複雑になるので割愛 ◦ 大体はgitさんがうまいことやってくれる
  • 57. ぷっしゅ? / ぷる?  みんなで共有してる歴史をローカルの 自分だけの歴史へ合体させる それが「pull」 ◦ どういう感じで歴史が合体するのかはい くつか種類があるし複雑になるので割愛 するのも大体gitさんがうまいことやって くれるのもpushと同じ ◦ cloneと似たようなもん (そうとう乱暴だけれど)
  • 58. まとめ  clone ◦ 「みんなの歴史」をローカルに複製する ◦ 自分だけの作業履歴が持てるので hoge(修正前).txtみたいなファイルを作 らなくても好きなだけ試行錯誤できる。  commit ◦ 新しい歴史を創造する ◦ 目標をステージしてからコミット! 目標をステージしてからコミット!
  • 59. まとめ  push ◦ 「みんなの歴史」 ↑合体 「自分の歴史」  pull ◦ 「みんなの歴史」 ↓合体 「自分の歴史」