SlideShare a Scribd company logo
Git 入門

 2012年7月3日
第1回 Git 勉強会
  @kunimiya
INTRODUCTION
みなさんプログラムの
バックアップはとってます
     か?
(取ってない人は改心しましょ
う)
プログラムの変更記録は重要

• 1週間の間書いていたコードが無駄になり、
  さかのぼって開発をやり直すことも珍しく
  ない

• ちょっと変更を加えただけで動かなくなる
  こともある

• プログラムのバックアップを定期的にとっ
  て安全に管理する習慣が大事
「日付ごとにフォルダごと
コピーしてるから大丈夫で
     す!」
(そのプログラム、本当に管理できてますか?
あるゼミ生Aの開発記録
     • 「日付ごとにフォル
       ダーごとコピーすれ
       ば大丈夫だろ」
     • 「安心安心」
あるゼミ生Aの開発記録
     • 「あれ・・・・・・
       実験用PCだと動かな
       い」
     •    「たしか3日前は
         動いたはず」

     • 3日前のコードから開
       発をやり直し
あるゼミ生Aの開発記録
     • 「あ、しまった。3日
       前のコードにはあの
       新機能が無い!」
     • 「前書いたコードか
       らコピーしよう……」

     • しだいにどれが
       「最新のコード」
      なのか分からなく
      なってくる
最終的には。。。
第1回Git勉強会
日付ごとのバックアップの問題
      点
• 問題点1:
 – 日付ごとにまるごとバックアップは、後から
   何を変更したのかが分かりにくい
• 問題点2:
 – まるごとバックアップしていくので、ファイ
   ルサイズが膨大になる
• 問題点3:
 – プログラム開発が枝分かれすると混沌
 – 例:実験用システムをメンテナンスしつつ、
   最新版のプログラムを開発する場合
そうだ
バージョン管理システムを
    導入しよう
バージョン管理システム
      (Version Control System)

• プログラムの変更履歴を管理するシステム
• OSSプロジェクトなどのように、複数人が同時
  にプログラムを開発できるようにするために生
  み出された
• CVS, Subversion, Mercurial, Bazzarなど様々なツー
  ルが存在する
今回取り上げるVCS: Git




• 分散型バージョン管理システム(VCS) の一種
• Linux の父 Linus Torvalds がLinuxプロジェクトの
  VCSとして開発した
Githubのブレイクで一躍Gitが有名
          に
gitの管理方法
• 日付ごとではなく、リビジョンという単位で
  プログラムの変更記録を保存する

• リビジョン:変更記録の単位
• ブランチ:リビジョンを指し示すラベル
• ワークツリー:現在のプログラムコード
• インデックス:リビジョンに登録する変更の
  リスト
Gitでのバージョン管理方法
  (ディレクトリの作成)
                リビジョン

                ブランチ

                インデックス
Gitでのバージョン管理方法
         2012年06月27日   リビジョン
コミット   (ディレクトリの作成)
         ディレクトリを作った
                       ブランチ

                       インデックス
Gitでのバージョン管理方法
    2012年06月27日
  (ディレクトリの作成)
                  リビジョン
    ディレクトリを作った
                  ブランチ

                  インデックス
  (rbファイルの追加)
Gitでのバージョン管理方法
       2012年06月27日      リビジョン
       ディレクトリを作った
                        ブランチ

       2012年06月28日      インデックス
コミット   Rubyのプログラムを書いた
Gitでのバージョン管理方法
  2012年06月27日       リビジョン
  ディレクトリを作った
                    ブランチ

   2012年06月28日      インデックス
   Rubyのプログラムを書いた




 (HTMLファイルの追加)
Gitでのバージョン管理方法
       2012年06月27日      リビジョン
       ディレクトリを作った
                        ブランチ

       2012年06月28日      インデックス
       Rubyのプログラムを書いた




       2012年06月29日
コミット   HTMLを書いた
Gitでのバージョン管理方法
  2012年06月27日       リビジョン
  ディレクトリを作った
                    ブランチ

   2012年06月28日      インデックス
   Rubyのプログラムを書いた




   2012年06月29日
   HTMLを書いた




  (rbファイルに追記)
Gitでのバージョン管理方法
       2012年06月27日       リビジョン
       ディレクトリを作った
                         ブランチ

       2012年06月28日       インデックス
       Rubyのプログラムを書いた




       2012年06月29日
       HTMLを書いた



       2012年06月30日
コミット   Rubyプログラムを書きなおし
GITに触ってみよう
Git 最大の障壁


Windows版の
インストール
Windowsへの
      git インストールは鬼門
• Windows には4通りのインストール方法
 1. msysgit というコマンドライン版をインストー
    ル
 2. Git for Windows というGUI中心の版をインス
    トール
 3. Windows にCygWin(Unix)をいれてインストール
 4. WindowsにVMWareでLinuxを入れてインストー
    ル
• 勉強会でインストールすると終わらないの
  で、今回はインストールは省略
今回の環境
• kunimiyaのMacbookに一時的なアカウント
  を作り、そこでGitリポジトリを作ってみ
  ましょう
git の設定 (git config)
$ git config --global user.name YOURNAME
$ git config --global user.email YOUR@ADDRESS
$ git config --global --list




• コミットする際に登録される名前、
        メールアドレスを設定する
git リポジトリの作成 (git init)
$ mkdir test
$ cd test
$ git init
Initialized empty Git repository in
  /Users/Tsunekawa7/development/test/.git/


• リポジトリにするディレクトリ (test) を作
  成し、git init で初期化
ファイルを作成する
$ echo Hello,Git. > README
$ ls
README
$ cat README
Hello,Git.




• リポジトリに追加するファイルを作成す
  る
ファイルの確認 (git status)
$ git status




• git status でリポジトリ内のファイルを確
  認
ファイルの確認 (git status)
$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
#     README
nothing added to commit but untracked files present (use "git
add" to track)
• さっき保存したファイルが「Untracked
  files」として表示されている
ファイルを作成する (git add )

$ git add README




• git add でファイルをインデックスに追加
• git status で確認すると「Tracked files」とし
  てREADME が登録されている
ファイルを作成する (git add )
$ git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use "git rm --cached <file>..." to unstage)
#
#     new file: README
#

• git status で確認すると変更の記録として
  README が登録されている
変更をコミットする (git
         commit )
$ git commit –m “initial commit”
[master (root-commit) 056b356] initial commit
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 README


• git commit で登録された変更を「リビ
  ジョン」としてコミット
• 「READMEというファイルを追加した」とい
  う変更が記録される
変更をコミットする (git log )

$ git log
commit
056b3567d69efdbb34f404db093e78016fffdae3
Author: kunimiya toji <kunimiya@example.com>
Date: Sun Jul 1 00:14:03 2012 +0900

  initial commit

• git log でリビジョンの履歴を閲覧できる
色々ファイルを追加してみよう
• Rubyスクリプトを追加してみる
• HTMLを追加してみる
• などなど

• ファイルの変更をコミットしてリビジョン
  を増やしてみよう
Diff付きでlogる (git log -p )

$ git log –p




• 行単位で変更が記録されているのが分か
  る
ここまでのおさらい

git init     gitリポジトリの初期化

git status   インデックスの内容を表示

git diff     最新リビジョンとの差分を表
             示
git add      ワーキングツリーに変更を追
             加
git commit   変更のコミット

git log      変更履歴の表示
次回予告
• 今回ならった範囲では、まだ日付バック
  アップとあまり変わらない
• Git はブランチを駆使したときに真の力を
  発揮

• 第2回: ブランチを活用した効率的なプロ
  グラミング方法
• 第3回: push, pull を使って他人とプログラ
  ムコードを共有する

More Related Content

PDF
Bitbucket and git
PDF
Git flow
PDF
Git lev 3 -おひとりさまでブランチを-
PDF
猫にはわからないGit講座
PPTX
Gitの勉強 紹介編-
PPTX
Git勉強会
PPTX
Git社内勉強会資料
PDF
git ~start PullRequest~
Bitbucket and git
Git flow
Git lev 3 -おひとりさまでブランチを-
猫にはわからないGit講座
Gitの勉強 紹介編-
Git勉強会
Git社内勉強会資料
git ~start PullRequest~

What's hot (20)

PDF
Git lev 4 -みんなでGit-
PDF
Github勉強会~Git・Githubを用いて共同開発・バージョン管理をしよう~
PDF
Gitの設定
PDF
大容量ファイルもGitで管理。 Git LFSの使い方
PDF
Git lev 1-おひとりさま用-
PDF
Git 20100313
PDF
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
PDF
Git for iOS beginner
PDF
Git入門
KEY
日本androidの会 中国支部 29回勉強会 github
KEY
Github for windows学内での使い方
PPTX
GitLabを16万8千光年ワープさせた話(改)
PPTX
Angular + Typedoc + Github Page
PDF
Git LFSを触ってみた
PDF
Git&GitHub入門
PDF
GitBucketで社内OSSしませんか?
PDF
VCS - Version Control System at Security and Programming camp 2011
PDF
Github of project
PDF
Jenkinsプラグインの中身を覗いてみよう
PDF
ホームディレクトリに埋もれた便利なコードをさがせ!
Git lev 4 -みんなでGit-
Github勉強会~Git・Githubを用いて共同開発・バージョン管理をしよう~
Gitの設定
大容量ファイルもGitで管理。 Git LFSの使い方
Git lev 1-おひとりさま用-
Git 20100313
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
Git for iOS beginner
Git入門
日本androidの会 中国支部 29回勉強会 github
Github for windows学内での使い方
GitLabを16万8千光年ワープさせた話(改)
Angular + Typedoc + Github Page
Git LFSを触ってみた
Git&GitHub入門
GitBucketで社内OSSしませんか?
VCS - Version Control System at Security and Programming camp 2011
Github of project
Jenkinsプラグインの中身を覗いてみよう
ホームディレクトリに埋もれた便利なコードをさがせ!
Ad

Viewers also liked (20)

PPT
解決輕熟女的眼袋問題
PDF
2012 03-19 - dia pai
PDF
Pnl 2 ceb - sonho-ou_realidade
PDF
2012 06-06 - momentos musicais
PPSX
Natalie 句子
PDF
So 133
PPS
Para Todas Las Mujeres Y Hombres
PDF
Turk Savunma Sanayii Ürünleri 2012
KEY
Yokohama.rb Kaja推薦
PPT
презентация
PDF
melssCRM brochure
PPT
ระดับครูผู้ช่วยนวัตกรรม
PPTX
Por dónde empezar
PPT
Europa door de eeuwen heen
PPT
2012.07.09 新聞剪報
PPTX
Phanmemdangtinquangcaovivayhom
PDF
Chemical engineering-course
PPTX
ประเภทของผล
PPTX
Number2 v georgieva
解決輕熟女的眼袋問題
2012 03-19 - dia pai
Pnl 2 ceb - sonho-ou_realidade
2012 06-06 - momentos musicais
Natalie 句子
So 133
Para Todas Las Mujeres Y Hombres
Turk Savunma Sanayii Ürünleri 2012
Yokohama.rb Kaja推薦
презентация
melssCRM brochure
ระดับครูผู้ช่วยนวัตกรรม
Por dónde empezar
Europa door de eeuwen heen
2012.07.09 新聞剪報
Phanmemdangtinquangcaovivayhom
Chemical engineering-course
ประเภทของผล
Number2 v georgieva
Ad

Similar to 第1回Git勉強会 (20)

PDF
Python for Data Analysis第1回勉強会(+git入門)
KEY
Git (実践入門編)
PDF
15分でわかるGit入門
PDF
Git勉強会
PDF
Git勉強会 2016 Gitで卒論を管理しよう回
KEY
20120324 git training
PPTX
git入門(講義っぽく)
PDF
Git for beginners
KEY
一人でもはじめるGitでバージョン管理
PDF
Version Control System Tutorial バージョン管理システムチュートリアル
PPTX
Git 勉強会
PPT
SVN経験者のためのGIT入門
PDF
Gitとちょっと仲良くなるために覚えたことまとめ
PDF
Gitで始めるバージョン管理
PDF
Gitのよく使うコマンド
KEY
P4p20120408
PPTX
Git SourceTreeでバージョン管理しよう
PDF
バージョン管理システムチュートリアル
PDF
Git 入門
PDF
Git overview (v 0.96)
Python for Data Analysis第1回勉強会(+git入門)
Git (実践入門編)
15分でわかるGit入門
Git勉強会
Git勉強会 2016 Gitで卒論を管理しよう回
20120324 git training
git入門(講義っぽく)
Git for beginners
一人でもはじめるGitでバージョン管理
Version Control System Tutorial バージョン管理システムチュートリアル
Git 勉強会
SVN経験者のためのGIT入門
Gitとちょっと仲良くなるために覚えたことまとめ
Gitで始めるバージョン管理
Gitのよく使うコマンド
P4p20120408
Git SourceTreeでバージョン管理しよう
バージョン管理システムチュートリアル
Git 入門
Git overview (v 0.96)

第1回Git勉強会