SlideShare ist ein Scribd-Unternehmen logo
1 von 27
Downloaden Sie, um offline zu lesen
Git をはじめよう!
    飯塚 修平




            UT Startup Gym
使用者の声

                      なんかここんとこ最近腰とか頭とかマジ痛くて吐き気も
                      するしスゲー調子悪かったんスけど、Git 使うように
                      なってから、そういうの全部なくなっちゃったんスよ
                      ね。その体の調子の変わり目の時に何かしたかっていっ
                      たら、ホントに Git をインストールしてあとちょっと薬
                      飲んだくらいだし。インストールしてから数時間でなん
22歳男性・東京都
                      か体の調子もよくなってきちゃって。インストールした
                      ときはこれだけでこんなに変化するなんて思ってもな
                      かったんスけど。ホントに Git 様々って感じっスわ。


ターミナルにscreenではなくbyobuを使うべき100の理由 - 馬鹿と天才は紙一重
http://d.hatena.ne.jp/shim0mura/20111005/1317819710
                                                      UT Startup Gym
Git のこんなところが便利
• お前の書いたコードのお陰で動かなくなったんだけ
 ど?

• でも大丈夫!
• 動いてた時点まで戻せばいいもんね!
                 HEAD




                        UT Startup Gym
Git のこんなところが便利
• お前の書いたコードのお陰で動かなくなったんだけ
 ど?

• でも大丈夫!
• 動いてた時点まで戻せばいいもんね!
          HEAD




                      UT Startup Gym
Git のこんなところが便利
• あ、マシンにお茶こぼしたー。あー、あー、あー。
• でも大丈夫!
• サーバのリポジトリから clone すればいいもんね!
                    サーバのリポジトリ

      push
                       clone
             pull

                               NEW!



                                  UT Startup Gym
Git のこんなところが便利
• このコードいつ誰が書いたの?消してもいいの?
• でも大丈夫!
• コミットログを見ればいいもんね!




                     UT Startup Gym
Git をはじめよう!


 ONE PLAYER GAME
MULTI PLAYER GAME
  ADVANCED MODE




                    UT Startup Gym
Git のインストール
ubuntu の方(VirtualBox とか EC2 とか)

# apt-get で git をインストールする
$ sudo apt-get install git-core



mac OSX の方

# Homebrew のインストール
$ ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"

# git のインストール
$ brew install git




                                                 UT Startup Gym
Git のしくみ
                                                                          ONE PLAYER GAME




                                 コミット
                              = スナップショット



master
                      過去                                                         未来

                                                      topic


                    ファイルのスナップショットの集合のように考える。


Pro Git - Pro Git 1.3 使い始める Gitの基本 http://progit.org/book/ja/ch1-3.html
                                                                          UT Startup Gym
コミットのしくみ
                     ONE PLAYER GAME




 インデックス




ワーキングツリー


                     UT Startup Gym
コミットのしくみ
                     ONE PLAYER GAME




 インデックス




ワーキングツリー


                     UT Startup Gym
コミットのしくみ
                           ONE PLAYER GAME




          committed

                      git commit

 インデックス


 git status              git add

ワーキングツリー


                          UT Startup Gym
コミットのしくみ
               ONE PLAYER GAME




          git log



git diff




               UT Startup Gym
ONE PLAYER GAME
$ git init #レポジトリ (スナップショットの集合) の作成

$ touch hoge
$ git status
$ git add hoge
$ git status
$ git commit -m “first set”
$ git log
$ git status
$ vim hoge #適当に編集

$ git status
$ git diff
$ git add . #untrackedまたはmodifiedをすべてステージング

$ git commit -m “modified hoge to ...”
$ git log
...




                                              UT Startup Gym
もとに戻す
                                                                                    ONE PLAYER GAME




•    git add を取り消す
     $ git reset HEAD
     ※ HEAD: 現在編集中のコミットのこと

•    ファイル hoge をコミットID 785b... の時点に戻したい
     $ git checkout 785b hoge
     -> 785b... の時点のものになった hoge がステージングされる
     -> 適宜修正して commit する

•    HEAD^^^ = HEAD から3つ前のコミット

•    --soft オプションや --hard オプション

•    実際は git が吐いてくれるコメント頼りです(丁寧!)。

git reset についてもまとめてみる-murankの日記- http://d.hatena.ne.jp/murank/20110327/1301224770   UT Startup Gym
Git の本領発揮は複数プレイ
                  MULTI PLAYER GAME




  • 高度なマージ機能
  • 常に最新のコードを共有
  • 詳細な編集ログ



                  UT Startup Gym
ベアリポジトリ
                                              MULTI PLAYER GAME




• ワーキングツリーを持たないリポジトリ
 -> コミットにしか興味を持っていません的な
 -> 実務的には push, pull が可能なリポジトリ  

                          サーバのベアリポジトリ
                              dev.git


                                   clone
      push
             pull
                    clone --bare
                                           NEW!



 ローカルのリポジトリ ローカルのリポジトリ ローカルのリポジトリ
    dev/.git   dev/.git   dev/.git
                                   UT Startup Gym
MULTI PLAYER GAME
$ vim ~/.ssh/config
Host ut-gym.jp
  IdentityFile /path/to/***.pem
$ git clone ubuntu@ut-gym.jp:/home/ubuntu/git/gittest.git
$ cd gittest
$ ごにょごにょ

$ git commit -m “〇〇のために△△を××した”

$ git config --global user.name "Your Name"
$ git config --global user.email you@example.com
$ git pull origin master
$ コンフリクトするかも。解消するためにごにょごにょ

$ git push origin master
$ git log --graph




                                                    UT Startup Gym
コンフリクト
CONFLICT (content): Merge conflict in hoge
Automatic merge failed; fix conflicts and then commit the result.
$ cat hoge
<<<<<<< HEAD
a
b
c
=======
hoge
piyo
fuga
>>>>>>> 7fhtq23...

        git 的にどちらを優先すればいいのかわからない状態。
       コンフリクトに遭遇した人が責任をもって直します(笑)
                                                    UT Startup Gym
ブランチ
                                         ADVANCED MODE




• コミット列を分岐することが出来る。
   いつでもリリース                     完成したので
    できる状態                         合流!


master
         過去                                    未来

                topic_twitter

              新機能開発!


                                         UT Startup Gym
ブランチ(スロー)
                       ADVANCED MODE




• コミット列を分岐することが出来る。
              HEAD

              master

master
         過去                  未来




                       UT Startup Gym
ブランチ(スロー)
                                           ADVANCED MODE




• コミット列を分岐することが出来る。
                     HEAD

                    master

master
         過去
                         topic_twitter           未来



                topic_twitter

              $ git branch topic_twitter
                                           UT Startup Gym
ブランチ(スロー)
                                             ADVANCED MODE




• コミット列を分岐することが出来る。

                     master
                              HEAD
master
         過去
                          topic_twitter            未来



                 topic_twitter

              $ git checkout topic_twitter
                                             UT Startup Gym
ブランチ(スロー)
                                         ADVANCED MODE




• コミット列を分岐することが出来る。

                  master
                                 HEAD
master
         過去
                              topic_twitter    未来



              topic_twitter

                 $ git add .
  $git commit -m post to twitter complete!
                                        UT Startup Gym
ブランチ(スロー)
                                         ADVANCED MODE




• コミット列を分岐することが出来る。
                   HEAD

                  master

master
         過去
                              topic_twitter    未来



              topic_twitter

              $ git checkout master
                                        UT Startup Gym
ブランチ(スロー)
                                          ADVANCED MODE




•   コミット列を分岐することが出来る。                     HEAD

                                          master

                                      topic_twitter

master
         過去                                     未来



                topic_twitter

              $ git merge topic_twitter
                                          UT Startup Gym
花サプの例                                 デプロイ


                       master                               maint
                                             pull
                      staging                              staging

                     topic_mail             デプロイ時にマージ

                    topic_twitter


    push              テスト用                                デプロイ用
                                            push
             pull                 pull


 master                                     master
                                                         デプロイ時にマージ
 staging                                   staging

topic_mail                                topic_mail

                                         topic_twitter

ローカル1                                     ローカル2              UT Startup Gym

Weitere ähnliche Inhalte

Ähnlich wie Git をはじめよう

ソフトウェア工学2023 08 GitHub
ソフトウェア工学2023 08 GitHubソフトウェア工学2023 08 GitHub
ソフトウェア工学2023 08 GitHubToru Tamaki
 
Gitで始めるバージョン管理
Gitで始めるバージョン管理Gitで始めるバージョン管理
Gitで始めるバージョン管理Daisuke Konishi
 
Build insider offline session チームでのgit
Build insider offline session チームでのgitBuild insider offline session チームでのgit
Build insider offline session チームでのgitTadahiro Ishisaka
 
Gitのよく使うコマンド
Gitのよく使うコマンドGitのよく使うコマンド
Gitのよく使うコマンドYUKI Kaoru
 
20120516 第7回ウフィカ社内ハンズオン Git基礎
20120516 第7回ウフィカ社内ハンズオン Git基礎20120516 第7回ウフィカ社内ハンズオン Git基礎
20120516 第7回ウフィカ社内ハンズオン Git基礎Makoto Yamazaki
 
SVN経験者のためのGIT入門
SVN経験者のためのGIT入門SVN経験者のためのGIT入門
SVN経験者のためのGIT入門AimingStudy
 
ノンプログラマのGit入門
ノンプログラマのGit入門ノンプログラマのGit入門
ノンプログラマのGit入門Muyuu Fujita
 
Git introduction2
Git introduction2Git introduction2
Git introduction2Misa Kondo
 

Ähnlich wie Git をはじめよう (12)

ソフトウェア工学2023 08 GitHub
ソフトウェア工学2023 08 GitHubソフトウェア工学2023 08 GitHub
ソフトウェア工学2023 08 GitHub
 
Git
GitGit
Git
 
Gitで始めるバージョン管理
Gitで始めるバージョン管理Gitで始めるバージョン管理
Gitで始めるバージョン管理
 
Build insider offline session チームでのgit
Build insider offline session チームでのgitBuild insider offline session チームでのgit
Build insider offline session チームでのgit
 
Git 勉強会
Git 勉強会Git 勉強会
Git 勉強会
 
Gitのよく使うコマンド
Gitのよく使うコマンドGitのよく使うコマンド
Gitのよく使うコマンド
 
20120516 第7回ウフィカ社内ハンズオン Git基礎
20120516 第7回ウフィカ社内ハンズオン Git基礎20120516 第7回ウフィカ社内ハンズオン Git基礎
20120516 第7回ウフィカ社内ハンズオン Git基礎
 
SVN経験者のためのGIT入門
SVN経験者のためのGIT入門SVN経験者のためのGIT入門
SVN経験者のためのGIT入門
 
ノンプログラマのGit入門
ノンプログラマのGit入門ノンプログラマのGit入門
ノンプログラマのGit入門
 
JTF 2013
JTF 2013JTF 2013
JTF 2013
 
はじめてのGit
はじめてのGitはじめてのGit
はじめてのGit
 
Git introduction2
Git introduction2Git introduction2
Git introduction2
 

Mehr von Shuhei Iitsuka

Online and offline handwritten chinese character recognition a comprehensive...
Online and offline handwritten chinese character recognition  a comprehensive...Online and offline handwritten chinese character recognition  a comprehensive...
Online and offline handwritten chinese character recognition a comprehensive...Shuhei Iitsuka
 
Inferring win–lose product network from user behavior
Inferring win–lose product network from user behaviorInferring win–lose product network from user behavior
Inferring win–lose product network from user behaviorShuhei Iitsuka
 
バリエーションの提示がもたらす長期的効果に着目したウェブサイト最適化手法 @第31回人工知能学会全国大会
バリエーションの提示がもたらす長期的効果に着目したウェブサイト最適化手法 @第31回人工知能学会全国大会バリエーションの提示がもたらす長期的効果に着目したウェブサイト最適化手法 @第31回人工知能学会全国大会
バリエーションの提示がもたらす長期的効果に着目したウェブサイト最適化手法 @第31回人工知能学会全国大会Shuhei Iitsuka
 
Procedural modeling using autoencoder networks
Procedural modeling using autoencoder networksProcedural modeling using autoencoder networks
Procedural modeling using autoencoder networksShuhei Iitsuka
 
Generating sentences from a continuous space
Generating sentences from a continuous spaceGenerating sentences from a continuous space
Generating sentences from a continuous spaceShuhei Iitsuka
 
ウェブサイト最適化のためのバリエーション自動生成システム
ウェブサイト最適化のためのバリエーション自動生成システムウェブサイト最適化のためのバリエーション自動生成システム
ウェブサイト最適化のためのバリエーション自動生成システムShuhei Iitsuka
 
Improving the Sensitivity of Online Controlled Experiments by Utilizing Pre-E...
Improving the Sensitivity of Online Controlled Experiments by Utilizing Pre-E...Improving the Sensitivity of Online Controlled Experiments by Utilizing Pre-E...
Improving the Sensitivity of Online Controlled Experiments by Utilizing Pre-E...Shuhei Iitsuka
 
Machine learning meets web development
Machine learning meets web developmentMachine learning meets web development
Machine learning meets web developmentShuhei Iitsuka
 
Python と Xpath で ウェブからデータをあつめる
Python と Xpath で ウェブからデータをあつめるPython と Xpath で ウェブからデータをあつめる
Python と Xpath で ウェブからデータをあつめるShuhei Iitsuka
 
リミックスからはじめる DTM 入門
リミックスからはじめる DTM 入門リミックスからはじめる DTM 入門
リミックスからはじめる DTM 入門Shuhei Iitsuka
 
【DBDA 勉強会 2013 夏】Chapter 12: Bayesian Approaches to Testing a Point (‘‘Null’’...
【DBDA 勉強会 2013 夏】Chapter 12: Bayesian Approaches to Testing a Point (‘‘Null’’...【DBDA 勉強会 2013 夏】Chapter 12: Bayesian Approaches to Testing a Point (‘‘Null’’...
【DBDA 勉強会 2013 夏】Chapter 12: Bayesian Approaches to Testing a Point (‘‘Null’’...Shuhei Iitsuka
 
Asia Trend Map: Forecasting “Cool Japan” Content Popularity on Web Data
Asia Trend Map: Forecasting “Cool Japan” Content Popularity on Web DataAsia Trend Map: Forecasting “Cool Japan” Content Popularity on Web Data
Asia Trend Map: Forecasting “Cool Japan” Content Popularity on Web DataShuhei Iitsuka
 
【DBDA 勉強会 2013 夏】Doing Bayesian Data Analysis Chapter 4: Bayes’ Rule
【DBDA 勉強会 2013 夏】Doing Bayesian Data Analysis Chapter 4: Bayes’ Rule【DBDA 勉強会 2013 夏】Doing Bayesian Data Analysis Chapter 4: Bayes’ Rule
【DBDA 勉強会 2013 夏】Doing Bayesian Data Analysis Chapter 4: Bayes’ RuleShuhei Iitsuka
 
UT Startup Gym で人生が変わった話
UT Startup Gym で人生が変わった話UT Startup Gym で人生が変わった話
UT Startup Gym で人生が変わった話Shuhei Iitsuka
 
ウェブサイトで収益を得る
ウェブサイトで収益を得るウェブサイトで収益を得る
ウェブサイトで収益を得るShuhei Iitsuka
 
HTML で自己紹介ページをつくる
HTML で自己紹介ページをつくるHTML で自己紹介ページをつくる
HTML で自己紹介ページをつくるShuhei Iitsuka
 
データベースを使おう
データベースを使おうデータベースを使おう
データベースを使おうShuhei Iitsuka
 
ウェブサービスの企画とデザイン
ウェブサービスの企画とデザインウェブサービスの企画とデザイン
ウェブサービスの企画とデザインShuhei Iitsuka
 
データベースを使おう
データベースを使おうデータベースを使おう
データベースを使おうShuhei Iitsuka
 
第3期キックオフ説明会+勉強会
第3期キックオフ説明会+勉強会 第3期キックオフ説明会+勉強会
第3期キックオフ説明会+勉強会 Shuhei Iitsuka
 

Mehr von Shuhei Iitsuka (20)

Online and offline handwritten chinese character recognition a comprehensive...
Online and offline handwritten chinese character recognition  a comprehensive...Online and offline handwritten chinese character recognition  a comprehensive...
Online and offline handwritten chinese character recognition a comprehensive...
 
Inferring win–lose product network from user behavior
Inferring win–lose product network from user behaviorInferring win–lose product network from user behavior
Inferring win–lose product network from user behavior
 
バリエーションの提示がもたらす長期的効果に着目したウェブサイト最適化手法 @第31回人工知能学会全国大会
バリエーションの提示がもたらす長期的効果に着目したウェブサイト最適化手法 @第31回人工知能学会全国大会バリエーションの提示がもたらす長期的効果に着目したウェブサイト最適化手法 @第31回人工知能学会全国大会
バリエーションの提示がもたらす長期的効果に着目したウェブサイト最適化手法 @第31回人工知能学会全国大会
 
Procedural modeling using autoencoder networks
Procedural modeling using autoencoder networksProcedural modeling using autoencoder networks
Procedural modeling using autoencoder networks
 
Generating sentences from a continuous space
Generating sentences from a continuous spaceGenerating sentences from a continuous space
Generating sentences from a continuous space
 
ウェブサイト最適化のためのバリエーション自動生成システム
ウェブサイト最適化のためのバリエーション自動生成システムウェブサイト最適化のためのバリエーション自動生成システム
ウェブサイト最適化のためのバリエーション自動生成システム
 
Improving the Sensitivity of Online Controlled Experiments by Utilizing Pre-E...
Improving the Sensitivity of Online Controlled Experiments by Utilizing Pre-E...Improving the Sensitivity of Online Controlled Experiments by Utilizing Pre-E...
Improving the Sensitivity of Online Controlled Experiments by Utilizing Pre-E...
 
Machine learning meets web development
Machine learning meets web developmentMachine learning meets web development
Machine learning meets web development
 
Python と Xpath で ウェブからデータをあつめる
Python と Xpath で ウェブからデータをあつめるPython と Xpath で ウェブからデータをあつめる
Python と Xpath で ウェブからデータをあつめる
 
リミックスからはじめる DTM 入門
リミックスからはじめる DTM 入門リミックスからはじめる DTM 入門
リミックスからはじめる DTM 入門
 
【DBDA 勉強会 2013 夏】Chapter 12: Bayesian Approaches to Testing a Point (‘‘Null’’...
【DBDA 勉強会 2013 夏】Chapter 12: Bayesian Approaches to Testing a Point (‘‘Null’’...【DBDA 勉強会 2013 夏】Chapter 12: Bayesian Approaches to Testing a Point (‘‘Null’’...
【DBDA 勉強会 2013 夏】Chapter 12: Bayesian Approaches to Testing a Point (‘‘Null’’...
 
Asia Trend Map: Forecasting “Cool Japan” Content Popularity on Web Data
Asia Trend Map: Forecasting “Cool Japan” Content Popularity on Web DataAsia Trend Map: Forecasting “Cool Japan” Content Popularity on Web Data
Asia Trend Map: Forecasting “Cool Japan” Content Popularity on Web Data
 
【DBDA 勉強会 2013 夏】Doing Bayesian Data Analysis Chapter 4: Bayes’ Rule
【DBDA 勉強会 2013 夏】Doing Bayesian Data Analysis Chapter 4: Bayes’ Rule【DBDA 勉強会 2013 夏】Doing Bayesian Data Analysis Chapter 4: Bayes’ Rule
【DBDA 勉強会 2013 夏】Doing Bayesian Data Analysis Chapter 4: Bayes’ Rule
 
UT Startup Gym で人生が変わった話
UT Startup Gym で人生が変わった話UT Startup Gym で人生が変わった話
UT Startup Gym で人生が変わった話
 
ウェブサイトで収益を得る
ウェブサイトで収益を得るウェブサイトで収益を得る
ウェブサイトで収益を得る
 
HTML で自己紹介ページをつくる
HTML で自己紹介ページをつくるHTML で自己紹介ページをつくる
HTML で自己紹介ページをつくる
 
データベースを使おう
データベースを使おうデータベースを使おう
データベースを使おう
 
ウェブサービスの企画とデザイン
ウェブサービスの企画とデザインウェブサービスの企画とデザイン
ウェブサービスの企画とデザイン
 
データベースを使おう
データベースを使おうデータベースを使おう
データベースを使おう
 
第3期キックオフ説明会+勉強会
第3期キックオフ説明会+勉強会 第3期キックオフ説明会+勉強会
第3期キックオフ説明会+勉強会
 

Git をはじめよう

  • 1. Git をはじめよう! 飯塚 修平 UT Startup Gym
  • 2. 使用者の声 なんかここんとこ最近腰とか頭とかマジ痛くて吐き気も するしスゲー調子悪かったんスけど、Git 使うように なってから、そういうの全部なくなっちゃったんスよ ね。その体の調子の変わり目の時に何かしたかっていっ たら、ホントに Git をインストールしてあとちょっと薬 飲んだくらいだし。インストールしてから数時間でなん 22歳男性・東京都 か体の調子もよくなってきちゃって。インストールした ときはこれだけでこんなに変化するなんて思ってもな かったんスけど。ホントに Git 様々って感じっスわ。 ターミナルにscreenではなくbyobuを使うべき100の理由 - 馬鹿と天才は紙一重 http://d.hatena.ne.jp/shim0mura/20111005/1317819710 UT Startup Gym
  • 3. Git のこんなところが便利 • お前の書いたコードのお陰で動かなくなったんだけ ど? • でも大丈夫! • 動いてた時点まで戻せばいいもんね! HEAD UT Startup Gym
  • 4. Git のこんなところが便利 • お前の書いたコードのお陰で動かなくなったんだけ ど? • でも大丈夫! • 動いてた時点まで戻せばいいもんね! HEAD UT Startup Gym
  • 5. Git のこんなところが便利 • あ、マシンにお茶こぼしたー。あー、あー、あー。 • でも大丈夫! • サーバのリポジトリから clone すればいいもんね! サーバのリポジトリ push clone pull NEW! UT Startup Gym
  • 6. Git のこんなところが便利 • このコードいつ誰が書いたの?消してもいいの? • でも大丈夫! • コミットログを見ればいいもんね! UT Startup Gym
  • 7. Git をはじめよう! ONE PLAYER GAME MULTI PLAYER GAME ADVANCED MODE UT Startup Gym
  • 8. Git のインストール ubuntu の方(VirtualBox とか EC2 とか) # apt-get で git をインストールする $ sudo apt-get install git-core mac OSX の方 # Homebrew のインストール $ ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)" # git のインストール $ brew install git UT Startup Gym
  • 9. Git のしくみ ONE PLAYER GAME コミット = スナップショット master 過去 未来 topic ファイルのスナップショットの集合のように考える。 Pro Git - Pro Git 1.3 使い始める Gitの基本 http://progit.org/book/ja/ch1-3.html UT Startup Gym
  • 10. コミットのしくみ ONE PLAYER GAME インデックス ワーキングツリー UT Startup Gym
  • 11. コミットのしくみ ONE PLAYER GAME インデックス ワーキングツリー UT Startup Gym
  • 12. コミットのしくみ ONE PLAYER GAME committed git commit インデックス git status git add ワーキングツリー UT Startup Gym
  • 13. コミットのしくみ ONE PLAYER GAME git log git diff UT Startup Gym
  • 14. ONE PLAYER GAME $ git init #レポジトリ (スナップショットの集合) の作成 $ touch hoge $ git status $ git add hoge $ git status $ git commit -m “first set” $ git log $ git status $ vim hoge #適当に編集 $ git status $ git diff $ git add . #untrackedまたはmodifiedをすべてステージング $ git commit -m “modified hoge to ...” $ git log ... UT Startup Gym
  • 15. もとに戻す ONE PLAYER GAME • git add を取り消す $ git reset HEAD ※ HEAD: 現在編集中のコミットのこと • ファイル hoge をコミットID 785b... の時点に戻したい $ git checkout 785b hoge -> 785b... の時点のものになった hoge がステージングされる -> 適宜修正して commit する • HEAD^^^ = HEAD から3つ前のコミット • --soft オプションや --hard オプション • 実際は git が吐いてくれるコメント頼りです(丁寧!)。 git reset についてもまとめてみる-murankの日記- http://d.hatena.ne.jp/murank/20110327/1301224770 UT Startup Gym
  • 16. Git の本領発揮は複数プレイ MULTI PLAYER GAME • 高度なマージ機能 • 常に最新のコードを共有 • 詳細な編集ログ UT Startup Gym
  • 17. ベアリポジトリ MULTI PLAYER GAME • ワーキングツリーを持たないリポジトリ -> コミットにしか興味を持っていません的な -> 実務的には push, pull が可能なリポジトリ   サーバのベアリポジトリ dev.git clone push pull clone --bare NEW! ローカルのリポジトリ ローカルのリポジトリ ローカルのリポジトリ dev/.git dev/.git dev/.git UT Startup Gym
  • 18. MULTI PLAYER GAME $ vim ~/.ssh/config Host ut-gym.jp IdentityFile /path/to/***.pem $ git clone ubuntu@ut-gym.jp:/home/ubuntu/git/gittest.git $ cd gittest $ ごにょごにょ $ git commit -m “〇〇のために△△を××した” $ git config --global user.name "Your Name" $ git config --global user.email you@example.com $ git pull origin master $ コンフリクトするかも。解消するためにごにょごにょ $ git push origin master $ git log --graph UT Startup Gym
  • 19. コンフリクト CONFLICT (content): Merge conflict in hoge Automatic merge failed; fix conflicts and then commit the result. $ cat hoge <<<<<<< HEAD a b c ======= hoge piyo fuga >>>>>>> 7fhtq23... git 的にどちらを優先すればいいのかわからない状態。 コンフリクトに遭遇した人が責任をもって直します(笑) UT Startup Gym
  • 20. ブランチ ADVANCED MODE • コミット列を分岐することが出来る。 いつでもリリース 完成したので できる状態 合流! master 過去 未来 topic_twitter 新機能開発! UT Startup Gym
  • 21. ブランチ(スロー) ADVANCED MODE • コミット列を分岐することが出来る。 HEAD master master 過去 未来 UT Startup Gym
  • 22. ブランチ(スロー) ADVANCED MODE • コミット列を分岐することが出来る。 HEAD master master 過去 topic_twitter 未来 topic_twitter $ git branch topic_twitter UT Startup Gym
  • 23. ブランチ(スロー) ADVANCED MODE • コミット列を分岐することが出来る。 master HEAD master 過去 topic_twitter 未来 topic_twitter $ git checkout topic_twitter UT Startup Gym
  • 24. ブランチ(スロー) ADVANCED MODE • コミット列を分岐することが出来る。 master HEAD master 過去 topic_twitter 未来 topic_twitter $ git add . $git commit -m post to twitter complete! UT Startup Gym
  • 25. ブランチ(スロー) ADVANCED MODE • コミット列を分岐することが出来る。 HEAD master master 過去 topic_twitter 未来 topic_twitter $ git checkout master UT Startup Gym
  • 26. ブランチ(スロー) ADVANCED MODE • コミット列を分岐することが出来る。 HEAD master topic_twitter master 過去 未来 topic_twitter $ git merge topic_twitter UT Startup Gym
  • 27. 花サプの例 デプロイ master maint pull staging staging topic_mail デプロイ時にマージ topic_twitter push テスト用 デプロイ用 push pull pull master master デプロイ時にマージ staging staging topic_mail topic_mail topic_twitter ローカル1 ローカル2 UT Startup Gym