30
@bibmeke iOSビギナー開発者のための Git入門

Git for iOS beginner

  • Upload
    bibmeke

  • View
    1.117

  • Download
    2

Embed Size (px)

Citation preview

@bibmeke

iOSビギナー開発者のための Git入門

みなさんは Xcodeプロジェクトの

バックアップ取ってますか?

お手軽バックアップ

バックアップしたプロジェクト

ありがちな状況• 機能追加したら実行出来なくなった…バックアップとってなくて元に戻せない…orz

• こんなこともあろうかとバックアップを用意して… ってどこ変えたんだっけ?

• そもそもどれが最新版だっけ…?

• 一つのアプリをみんなで作ってるけど、誰がどこ編集したかわからない

問題点

• どのタイミングでどこを変えたのかわかりにくい

• 目視で毎回差分を見極めるのは時間の無駄

• 人が増えるとさらにややこしい

バージョン管理 しましょうか

バージョン管理とは• ファイルの変更履歴を美しく残すための仕組み

• いつ (変更日時)

• 誰が (変更した人)

• 何を (ファイルの変更点)変更したかといった情報を記録

Git (ギット)

• 分散型バージョン管理システムの一つ

• Linuxのソースコードを管理するために作られた

• 大きなプロジェクトでも高速動作

• 無料かつオープンソース

ソースコードに限らず• テキストデータならなんでも得意!

• ソースコード (iOS以外ももちろん)

• Web (HTML / CSS / JavaScript)

• 本の原稿

• などなどなど

Git = GitHub?

• インドとインドネシアくらい違う

• GitHubはGitを利用したソーシャルネットワークサービス

• Git + SNS = GitHub!

Gitを使ってみよう

Gitとの付き合い方• Gitはターミナルで操作する

• 白地に黒文字の画面に呪文を唱えていく

• …他にも手段があります

Git on Xcode

• Gitの操作は実はXcodeから可能

• ただし可能な操作は限定的

• あなたのプロジェクトでも既に有効になっているかも?

いつの間にか使っていた例• A: added追加されたファイル

• M: modified変更されたファイル

• 実は既にGitに見守られています

まずは用語から• リポジトリ (Repository)

• コミット (Commit)

• ブランチ (Branch)

• Switch to Branch

• マージ (Merge)

リポジトリ• Repository … 容器, 貯蔵[保管, 収納]所

• 変更履歴が保存されていくデータベース

• Gitの場合は.gitフォルダ(隠しフォルダ)の中にある

普段は見えません

コミット• 【名詞】前回の状態からいつ、誰が、何を変更したかという情報

• 【動詞】コミットをリポジトリに書き記すこと

リポジトリの中身

4/194/184/174/16

ブランチ• branch … 枝

• 変更履歴を枝分かれさせたいときに使う

• 例えば… 安定バージョンと機能追加バージョン

master

develop

Switch to Branch

• 作業中ブランチの切り替え

• 普段は最初から存在するmasterブランチに変更履歴が記録されていく

• これを切り替えたいときに

マージ• それぞれのブランチでの変更点が一つのブランチに統合される

• 機能追加がうまくいった場合に安定版に合流させる、とか

master

develop

Xcodeでやってみよう• リポジトリの作成

• ソースファイルの編集

• コミット(変更を保存)

• ブランチを作る(枝分かれ)

• Switch to Branch(ブランチの間を行き来)

• マージ (二つのブランチを統合)

リモートリポジトリ

• リモート(外部)にあるリポジトリ

ネット

Macの中 外部のサーバの中

何に使える?• みんなでリモートリポジトリを編集共同でアプリ開発に

Aさん

リモートリポジトリ

Bさんネット

何に使える?• ひとりでリモートリポジトリに変更を送信外部のバックアップ先として

Macリモートリポジトリ

ネット

Gitホスティング• GitHub一番人気!無料でリポジトリ作り放題

• Bitbucket 二番人気無料でプライベートリポジトリまで作り放題

• codebreak;和製GitHubと呼ばれる期待の新星(日本語対応) 無料でプライベートリポジトリまで作り放題

プッシュ• ローカルのリポジトリに記録されている 変更履歴をリモートリポジトリにアップロード

Macリモートリポジトリ

ネット

プル• リモートのリポジトリに記録されている変更履歴をローカルリポジトリにダウンロード

• 他の人が変更した内容を手元に持ってくる

Macリモートリポジトリ

ネット

codebreak;でやってみます

• 今回はリモートリポジトリを作って外部にバックアップを作ってみます

• リモートリポジトリの作成

• ローカルリポジトリの変更をリモートリポジトリへプッシュ

もの足りないあなたに• SourceTree (http://www.sourcetreeapp.com)

• Gitのより細かい操作が可能

続きはWebで• ProGithttp://git-scm.com/book/ja

• こわくないGithttp://www.slideshare.net/kotas/git-15276118

• githughttps://github.com/Gazler/githug