SlideShare a Scribd company logo
1 of 39
git GitHub SourceTree
入門
● 各概要
● 各種セットアップ
● リポジトリのセットアップ
目次
対象読者
● git初心者
● GitHub初心者
● SourceTree初心者
題材としてUnityを使用しています。
各概要
VCS
VCS(Version Control System)とは、ファイルの変更履歴を管理するた
めのシステムやツールです。
主にソフトウェア開発に用いられ、ソースコードの管理で重宝します。
Git、Subversion、Mercurial、Perforceなど、VCSにはそこそこ種類が
あります。
バージョン管理システムとは?管理方式の違いと履歴を管理する利点|発注ラウンジ
https://hnavi.co.jp/knowledge/blog/version_control_system/
gitとGitHub
gitとは、分散管理方式を採用するVCS
の一つで、バージョンを管理してくれ
るシステムの本体です。
GitHubとは、gitを利用したバージョン
管理ウェブサービスです。リモートリ
ポジトリの運用、バグやタスクの管理、
リリースバージョン管理などソフトウ
ェア開発の補助機能が統合されていま
す。
SourceTree
SourceTreeとは、ローカルリポジトリ
をGUIで操作できるソフトウェアです。
業務で頻繁に使用する一通りの操作は行
えますが、全てのgitコマンドに対応し
ている訳ではないようです。
gitを使いこなしたい人はコマンドライ
ンで操作しよう!
git、GitHub、SourceTreeの関係性はこのようになります。
自分のPC
(クライアント、ローカルリポジトリ)
GitHubのWebページ
(サーバ、リモートリポジトリ)
gitをより使いやすく
データのやり取り
各種セットアップ
GitHubアカウントの作成
まずはGitHubのページにアクセスしてアカウントを作成しましょう。既にGitHubアカウントを持っている
人はこの項目は飛ばしてしまって下さい。
GitHub
https://github.co.jp/
アクセスしたらアカウントを作成します。下記のページが分かりやすいので、書かれている通りにアカウン
トを作成していきます。
【2019年1月現在】GitHubアカウント作成方法|Qiita
https://qiita.com/okumurakengo/items/848f7177765cf25fcde0
SourceTreeのインストール
次にSourceTreeのセットアップを行います。既にSourceTreeをインストールしている人はこの項目は飛
ばしてしまって下さい。
まずはSourceTreeをダウンロードします。
SourceTree
https://www.sourcetreeapp.com/
次にSourceTreeをインストールします。下記のページが分かりやすいので、書かれている通りにインスト
ールしていきます。
SourceTree(3.0.15)をインストールしてみた|Qiita
https://qiita.com/tetsu831018/items/bb6ecf15ca5f67e5879a
SSHキー登録
最後にSSHキー登録を行います。既にGitHubにSSHキーを登録している人はこの項目は飛ばしてしまって
下さい。
そもそもなぜSSHキーを使うのかというと、ざっくり言うと情報漏洩を防ぐためです。
(個人的にはgit push時に認証が面倒だから)
GitHubのリモートリポジトリへのアクセス方式をざっくり知りたい人はこちら。
GitHubのremote URLにはどのプロトコルを使えばよいのか?|Qiita
https://qiita.com/chroju/items/67da13c672efcd2bc787
SSHキー登録手順は、下記のページを参考にしましょう。Macでもほぼ同じように出来るはずです。
SourceTreeを使ってGitHubにSSH接続する (Windows)|Qiita
https://qiita.com/wappaboy/items/a15fd758450036fc9760
SourceTree 設定からSSH設定&リポジトリをcloneするまでの流れ|Qiita
https://qiita.com/github129/items/b23a24aaa359a0f8eba7
リポジトリのセットアップ
リポジトリとは?
リポジトリとは、システムの開発プロジェクトに関連するデータの一元的
な貯蔵庫のことです。
gitは分散管理方式のため、分散しているローカルリポジトリとローカルリ
ポジトリからアクセスされるリモートリポジトリの2種類があります。
履歴を管理するリポジトリ|サルでもわかるGit入門
https://backlog.com/ja/git-tutorial/intro/02/
リポジトリを作ろう
どうやらリポジトリ作成は当たり前すぎて
良い感じのページがすぐに見つからなかっ
たので、作り方を説明します。
GitHubにログインすると、トップページ
に右の画像のような画面が表示されます。
「Start a project」ボタンを押すとリモー
トリポジトリの作成画面に遷移します。
リポジトリを作ろう
1. リモートリポジトリの名前を決めます。
アカウントの中で重複しないように名前
を付けましょう。
2. リポジトリの説明です。
3. 公開範囲を決めます。チーム開発で使用
する場合は原則Privateを選択して下さ
い。
4. 説明ファイルを作成するかを選択します。
チェック無しのままにします。
5. .gitignoreファイルを作成するかを選択
します。Unityを使用する場合はUnity
を選択して下さい。
6. ライセンスを選択します。公開範囲が
Publicの場合はどれにするか考えるべき
ですが、今回はNoneのままにします。
7. リモートリポジトリを作成します。
③
②
④
①
⑦
⑥⑤
リポジトリのClone
リポジトリが作成できたら、「Clone or
download」ボタンをクリックします。
今回はSSHを使うので「Clone with SSH」
という項目になっていることを確認します。
リポジトリのURLをコピーするために右側の
アイコンボタンをクリックします。
下記のページの「ローカル環境にクローン」
という項目を参考にしてCloneを行います。
このページではHttpsを使用してCloneを説明
していますが、今回はSSHを使うので
GitHubのページの説明部分は無視して下さい。
誰でも簡単!GitHubで管理するためのSourcetreeの
最低限の使い方|HPcode
https://haniwaman.com/sourcetree/#i
リポジトリのClone
Cloneに成功すると、指定したパスにこのよ
うなファイルが生成されます。
.gitというものがローカルリポジトリの本体
です。ローカルリポジトリは、この.gitがあ
る階層以下の変更を監視、管理します。
.gitignoreというものはリポジトリの管理対
象外とするパスの一覧が記述されたファイル
です。今回はUnity用に自動生成されていま
すが、手動で編集することもあります。
既にUnityプロジェクトがある場合
リモートリポジトリを作成、ローカルにClone、ローカルリポジトリの位置にUnityプロジェクトを作成という流れで準備を
進めれば特に問題はありませんが、ローカルにCloneする前にバージョン管理したいUnityプロジェクトが存在している場合
は少し面倒になります。
面倒な理由は、Cloneは空でないフォルダを対象とするとエラーが発生すること、リモートリポジトリ作成時にオプション
で作成した.gitignoreファイルはUnityプロジェクトのルートにリポジトリを作成することを前提に生成されていること、の
2つがあるからです。
そのため、Unityプロジェクトがある場所とは異なる場所にローカルリポジトリをCloneし、Cloneした場所にUnityプロジ
ェクトのAssetsフォルダ等を全て移動させるという対応を行います。
Unityプロジェクトの設定を確認
最後に、Unityプロジェクトがバージョン管
理に適した設定になっているかを確認します。
Project Settingsを開いて、Editorの項目を
開きます。右の図のようになっていればOKで
す。なっていなければ、このようにモードを
変更して下さい。
設定の詳しい説明はこちら。
Editor Settings|Unity マニュアル
https://docs.unity3d.com/ja/2018.1/Manual/cl
ass-EditorManager.html
SourceTreeを使った
gitの操作
分かりやすいページのリンク集
この資料より遥かに分かりやすいページは沢山ありますので、gitをもっと詳しく知りたい人はリンクを辿
ってみるといいと思います。
サルでもわかるGit入門
https://backlog.com/ja/git-tutorial/
誰でも簡単!GitHubで管理するためのSourcetreeの最低限の使い方|HPcode
https://haniwaman.com/sourcetree/
基本的なgit操作のワークフロー
ざっくりとワークフローを分けると、
● 作業したものを他の人と共有するブランチに統合する
● 共有ブランチの最新版を自分の元へもってくる
作業したものを他の人と共有するブランチに統合する
スクリプトの作成、シーンの編集、アセットのインポート等、ローカルリポジトリが管理する階層以下で
行った作業は元の状態からの差分として管理されます。図では、作業によって生じた差分を変更と記して
います。
例外的に.gitignoreファイルに記述されているパスで生じた差分はローカルリポジトリでは管理されませ
ん。
作業したものを他の人と共有するブランチに統合する
gitでバージョン管理する第一歩として、Stagingというものがあります。Stagingは次にあるCommitで
保存を行う時に、どの変更をCommitの対象とするかを選択するためにあります。
Gitの基本 ワークツリーとインデックス|サルでもわかるGit入門
https://backlog.com/ja/git-tutorial/intro/04/
SourceTreeでは、下のウィンドウにステージングしていない変更、上のウィンドウにステージングした
変更が表示されます。一度ステージングした変更もインデックスから除く操作を行えばCommitの対象か
ら外すことが出来ます。
作業したものを他の人と共有するブランチに統合する
変更を保存するためCommitを行います。Commitすることで初めてgitでバージョンが管理されます。
Gitの基本 ワークツリーとインデックス|サルでもわかるGit入門
https://backlog.com/ja/git-tutorial/intro/04/
注意したいことは、Commitすると変更をどのブランチで保存するか確定してしまうということです。ゲ
ームで例えると、セーブで上書きしたくないセーブデータにも上書き出来てしまう可能性があるような感
じです。Commitする時は、自分が今どのブランチ(ワークツリー)で操作しようとしているのかをよく確
認しましょう。
Commitを行うためにはコミットメッセージを記述します。画面下部のテキストエリアにどんなことをし
たかを記述してコミットボタンをクリックすればCommitが出来ます。
テキストエリアの下にあるチェックボックスをオンにすると、次の操作であるPushを同時に行うことが出
来ます。
作業したものを他の人と共有するブランチに統合する
ローカルリポジトリのブランチの状態をリモートリポジトリにも反映させるためにPushを行います。
Gitの基本 ワークツリーとインデックス|サルでもわかるGit入門
https://backlog.com/ja/git-tutorial/intro/04/
SourceTreeではCommitと同時にPushも出来るようになっているので、それでPushを行った場合はこの
部分は飛ばすことが出来ます。
Pushを行うためには、画面上部のプッシュボタンをクリックします。どのブランチをPushするかをチェ
ックボックスで選択することが出来ます。ワークツリーになっているブランチはデフォルトでチェックが
ついているはずです。
プッシュボタンを押せばPushされます。この時、Https通信を採用しているとGitHubアカウントのログイ
ンを、SSH通信を採用していると秘密鍵のパスフレーズを求められます。毎回要求されるのが嫌な人は、
自動入力などの工夫をしてみましょう。
作業したものを他の人と共有するブランチに統合する
変更があるブランチは、最終的に特定のブランチに統合します。Gitで直接統合する場合はMergeを、
GitHub上で統合する場合はPull Requestを行います。
Gitの基本 ワークツリーとインデックス|サルでもわかるGit入門
https://backlog.com/ja/git-tutorial/stepup/04/
実際はブランチの統合はMergeとRebaseの2種類があります。しかし、チームで制作する場合にリモート
リポジトリにPushしたものに対してRebaseするのは危険な行為であるため、ミスを減らすという意味合
いも込めてMergeだけを解説します。
どうしてもRebaseを使用したい場合は、一度もPushしていない個人のブランチでのみ使用する程度に留
めると良いと思います。
作業したものを他の人と共有するブランチに統合する
ローカルリポジトリでMergeを行うためには、画面上部のマージボタンをクリックします。すると、現在
のブランチにどのコミットを統合するか、という選択画面が表示されます。そのため、作業を行ったブラ
ンチではなく、作業を統合したいブランチに切り替えてからマージボタンをクリックする必要があります。
作業を行ったブランチの最新のコミットを選択すれば、現在のブランチにそのコミットまでの内容が統合
されます。
GitHub上でMergeを行うためには、Pull Requestを行います。GitHubのPull Requestタブを選択し、
「New pull request」ボタンをクリックします。baseに統合先のブランチを、compareに作業したブラ
ンチを選択して「Create pull request」ボタンをクリックし、メッセージ等を記入して「Create pull
request」ボタンをクリックします。コンフリクトが発生していなければ「Merge pull Request」ボタン
をクリックしてMergeすることが出来ます。
共有ブランチの最新版を自分の元へもってくる
最新版のブランチをいきなりローカルリポジトリに持ってくる前に、リモートリポジトリに変更があるか
どうかを確認します。これをFetchといいます。Fetchを飛ばしてPullをしても問題は特にありません。
リモートリポジトリ Fetch|サルでもわかるGit入門
https://backlog.com/ja/git-tutorial/stepup/15/
Fetchを行うためには、画面上部のフェッチボタンをクリックします。デフォルトでは「すべてのからフ
ェッチ」にチェックが付いていますが、特定のブランチのみFetchしたい場合はチェックを外します。
Fetchを行った後にプルボタンに数値が表示されたりブランチの右側に下矢印と数値が表示されたりした
場合は、ローカルリポジトリにはない変更がリモートリポジトリに存在しています。
共有ブランチの最新版を自分の元へもってくる
リモートリポジトリから特定のブランチの最新版をローカルリポジトリに持ってくるにはPullを行います。
これは主に他の人の変更が適用された共有ブランチを最新版に保つために行います。
リモートリポジトリ Pull|サルでもわかるGit入門
https://backlog.com/ja/git-tutorial/stepup/14/
Pullを行うためには、画面上部のフェッチボタンをクリックします。ダイアログが開いたら、どのブラン
チをPullしてくるかを選択します。これは、現在のワークツリーに対して選択したブランチの最新版を
Mergeするという操作になるので、ワークツリーが適切かどうかをよく確認しましょう。
共有ブランチの最新版を自分の元へもってくる
リモートリポジトリから最新の共有ブランチを持ってきたら、そこから新しい作業ブランチを作って作業
していきます。
チュートリアル1 ブランチを使ってみよう! 1. ブランチを作成する|サルでもわかるGit入門
https://backlog.com/ja/git-tutorial/stepup/07/
ブランチを新規作成するためには、画面上部のブランチボタンをクリックします。現在のブランチをベー
スとして新規ブランチを作るためのダイアログが開きます。ブランチ名を付けて「ブランチを作成」ボタ
ンをクリックすれば新規にブランチを作成できます。
共有ブランチの最新版を自分の元へもってくる
新しいブランチを作ったら、そこから作業を続けていきます。
基本的なgitを使ったワークフローは以上です。
Unityでチーム制作する時に
注意すること
注意した方がいいことは多い
ゲーム制作に限った話ではありませんが、gitやGitHubを使う場合には注意すべきこともあります。
主に、以下の3つに気を付けた方がいいと思うため、紹介します。
● ゲームは基本的にPrivateリポジトリで管理する
● 第三者のアセットはリポジトリに追加しない
● APIトークンやパスワードは公開しない
ゲームは基本的にPrivateリポジトリで管理する
ゲームとは、コンテンツそのものに価値があります。プログラム、アセット、パラメータ群が公開されて
いては無料でコンテンツを遊んでほしいと言っていることと同じです。たとえ無料で遊んでほしくても、
プログラムが筒抜けでは特殊な攻略を簡単に作られたりバグを突かれたりしかねないので、良いことでは
ないです。
ゲームプロジェクトを公開することを意図していない限り、基本的にPrivateリポジトリで管理していく方
がいいです。
IT業界ではGitHubアカウントを指定することで自身の実績を示すことがありますが、Privateだからとい
って評価を下げるようなIT企業は無いはずなので、そこを心配することはないと思います。もし実績を示
したいのであれば、ポートフォリオを作成したり外部サイトで公開したりするといいです。
第三者のアセットはリポジトリに追加しない
有料のアセットを購入してプロジェクト内で使用している場合はPublicなリポジトリに追加しないように
しましょう。理由は単純で、有料アセットを世界中に無料頒布するような行為だからです。
また、無料、有料問わずアセットのライセンスにはよく注意しましょう。一人ひとりがライセンスを購入
しなければならないようなアセットであれば、一人のライセンスでチームメンバ全員にアセットの使用を
許してしまう可能性があり危険です。
というわけで、第三者のアセットは基本的にリポジトリに追加しないようにしましょう。追加するとして
も、絶対にPublicリポジトリで追加することだけは止めましょう。
APIトークンやパスワードは公開しない
外部サービスのAPIにアクセスしたり、サーバへアクセスしたりする時にトークンやパスワードといった
ものが必要になる場合があります。しかし、これらをリポジトリに追加するのはやめましょう。公開され
ないことを前提にしている情報を公開すれば、第三者に乗っ取られても仕方がないです。
トークンやパスワードは使用するプログラムとは別のテキストファイル等に隔離しておき、.gitignoreに
追加しておくことでリポジトリに追加しないようにしておきましょう。
注意することのまとめ
基本的にPrivateリポジトリ
で管理しよう!

More Related Content

Similar to git&GitHub&SourceTree入門

Git 入門ちょい手前
Git 入門ちょい手前Git 入門ちょい手前
Git 入門ちょい手前Yuichi Goto
 
【社内輪読会】Github実践入門2章
【社内輪読会】Github実践入門2章【社内輪読会】Github実践入門2章
【社内輪読会】Github実践入門2章Akira Torii
 
VCS - Version Control System at Security and Programming camp 2011
VCS - Version Control System at Security and Programming camp 2011 VCS - Version Control System at Security and Programming camp 2011
VCS - Version Control System at Security and Programming camp 2011 Hiro Yoshioka
 
猫にはわからないGit講座
猫にはわからないGit講座猫にはわからないGit講座
猫にはわからないGit講座Yusei Yamanaka
 
[ノマワクラボ 第2回Web勉強会] Git入門
[ノマワクラボ 第2回Web勉強会] Git入門[ノマワクラボ 第2回Web勉強会] Git入門
[ノマワクラボ 第2回Web勉強会] Git入門Toru Tamura
 
Git & ブランチモデルで学ぶ バージョン管理入門
Git & ブランチモデルで学ぶ バージョン管理入門Git & ブランチモデルで学ぶ バージョン管理入門
Git & ブランチモデルで学ぶ バージョン管理入門kazuki kuriyama
 
Wordbench fukuoka
Wordbench fukuokaWordbench fukuoka
Wordbench fukuokaJunji Manno
 
Git -分散バージョン管理システム-
Git -分散バージョン管理システム-Git -分散バージョン管理システム-
Git -分散バージョン管理システム-Koji Shinba
 
Git社内勉強会資料
Git社内勉強会資料Git社内勉強会資料
Git社内勉強会資料Kenji Takei
 
Git 初心者のための GitHub Pages
Git 初心者のための GitHub PagesGit 初心者のための GitHub Pages
Git 初心者のための GitHub PagesTakenori Nakagawa
 
git入門(講義っぽく)
git入門(講義っぽく)git入門(講義っぽく)
git入門(講義っぽく)kataware
 
WordPressサイトのバージョン管理
WordPressサイトのバージョン管理WordPressサイトのバージョン管理
WordPressサイトのバージョン管理lolipopjp
 
『超初心者向け!visual studio + git で始めるアジャイル開発』 .NETラボ勉強会 #dotnetlab
『超初心者向け!visual studio + git で始めるアジャイル開発』 .NETラボ勉強会 #dotnetlab『超初心者向け!visual studio + git で始めるアジャイル開発』 .NETラボ勉強会 #dotnetlab
『超初心者向け!visual studio + git で始めるアジャイル開発』 .NETラボ勉強会 #dotnetlab満徳 関
 
バージョン管理システムチュートリアル
バージョン管理システムチュートリアルバージョン管理システムチュートリアル
バージョン管理システムチュートリアルRyo Igarashi
 
ゆるふわっGit入門
ゆるふわっGit入門ゆるふわっGit入門
ゆるふわっGit入門Keisuke Oohata
 
Tortoise hgのすすめ
Tortoise hgのすすめTortoise hgのすすめ
Tortoise hgのすすめsuzzsegv
 

Similar to git&GitHub&SourceTree入門 (20)

Git 入門ちょい手前
Git 入門ちょい手前Git 入門ちょい手前
Git 入門ちょい手前
 
【社内輪読会】Github実践入門2章
【社内輪読会】Github実践入門2章【社内輪読会】Github実践入門2章
【社内輪読会】Github実践入門2章
 
VCS - Version Control System at Security and Programming camp 2011
VCS - Version Control System at Security and Programming camp 2011 VCS - Version Control System at Security and Programming camp 2011
VCS - Version Control System at Security and Programming camp 2011
 
猫にはわからないGit講座
猫にはわからないGit講座猫にはわからないGit講座
猫にはわからないGit講座
 
Aedlabo git seminer
Aedlabo git seminerAedlabo git seminer
Aedlabo git seminer
 
[ノマワクラボ 第2回Web勉強会] Git入門
[ノマワクラボ 第2回Web勉強会] Git入門[ノマワクラボ 第2回Web勉強会] Git入門
[ノマワクラボ 第2回Web勉強会] Git入門
 
Git & ブランチモデルで学ぶ バージョン管理入門
Git & ブランチモデルで学ぶ バージョン管理入門Git & ブランチモデルで学ぶ バージョン管理入門
Git & ブランチモデルで学ぶ バージョン管理入門
 
Gitのススメ
GitのススメGitのススメ
Gitのススメ
 
Wordbench fukuoka
Wordbench fukuokaWordbench fukuoka
Wordbench fukuoka
 
Git -分散バージョン管理システム-
Git -分散バージョン管理システム-Git -分散バージョン管理システム-
Git -分散バージョン管理システム-
 
Git社内勉強会資料
Git社内勉強会資料Git社内勉強会資料
Git社内勉強会資料
 
Gitに触れよう
Gitに触れようGitに触れよう
Gitに触れよう
 
Git 初心者のための GitHub Pages
Git 初心者のための GitHub PagesGit 初心者のための GitHub Pages
Git 初心者のための GitHub Pages
 
git入門(講義っぽく)
git入門(講義っぽく)git入門(講義っぽく)
git入門(講義っぽく)
 
WordPressサイトのバージョン管理
WordPressサイトのバージョン管理WordPressサイトのバージョン管理
WordPressサイトのバージョン管理
 
『超初心者向け!visual studio + git で始めるアジャイル開発』 .NETラボ勉強会 #dotnetlab
『超初心者向け!visual studio + git で始めるアジャイル開発』 .NETラボ勉強会 #dotnetlab『超初心者向け!visual studio + git で始めるアジャイル開発』 .NETラボ勉強会 #dotnetlab
『超初心者向け!visual studio + git で始めるアジャイル開発』 .NETラボ勉強会 #dotnetlab
 
Svn+Git
Svn+GitSvn+Git
Svn+Git
 
バージョン管理システムチュートリアル
バージョン管理システムチュートリアルバージョン管理システムチュートリアル
バージョン管理システムチュートリアル
 
ゆるふわっGit入門
ゆるふわっGit入門ゆるふわっGit入門
ゆるふわっGit入門
 
Tortoise hgのすすめ
Tortoise hgのすすめTortoise hgのすすめ
Tortoise hgのすすめ
 

git&GitHub&SourceTree入門