Download - 今日から始めるGit & GitHub入門
今日から始めるGit & GitHub 入門Write by 森理 麟
2
Myself
森理 麟 (@moririring)職業:ゲームプログラマHP : moririringのHPMicrosoft MVP for Visual C#(2013.01 –)
3
MyCommunity
VSハッカソン倶楽部 + Visual Studio勉強会C++テンプレート完全ガイド読書会UnityクリエイターズIT英語勉強会ぼちぼちぼっち開発
4
はじめに
Windows の人は Git をダウンロードしておいてください。Mac はデフォで入っています。http://git-scm.com/
5
質問
6
GitHub
GitHub のアカウントを持っていない人ー?
7
Git
Git を使ったことがない人ー?
8
DVCS
分散バージョン管理システムを聞いたことない人ー?
9
CVCS
Subversion も知らない人ー?へ?居るの?
10
1. CVCS( 集中型バージョン管理システム )
11
集中型の図
引用 : ガチで 5 分で分かる分散型バージョン管理システム Git (http://image.itmedia.co.jp/ait/articles/1307/05/5min_git1.jpg)
12
バージョン管理のメリット
バージョン毎のバックアップ差分での効率的な転送好きなバージョンの復元複数人での共同開発同じファイルを編集しても別箇所なら自動で対応 ( マージ )
13
せめてちゃんとした日付をつけよう Yo
バージョン管理をすれば少なくともこれは止められる
引用 :Git を使ったバージョン管理 (http://www.backlog.jp/git-guide/img/post/intro/capture_intro1_1_1.png)
14
僕が感じるバージョン管理のメリット1
ソースに余計なコメントを残さなくなった!
15
僕が感じるバージョン管理のメリット2
更新前に差分を確認するようになり、少しでも差分を少なくするようになった!
16
集中型のデメリット
皆で同じ情報を共有する仕組みは自分の都合だけでアップできない
17
集中型のデメリット
わかりやすい例はエラーを上げれば皆がエラー
18
集中型のデメリット
リリースが近くなるとさらに慎重になり、 Excel でコミット管理というホラーもある
19
集中型でやらないこと
集中型ではバージョンを戻すというのはあまりやらないかも
20
集中型でやらないこと
集中型ではブランチは単なるバックアップで、進めてもマージはあまりしないかも
21
2.DVCS( 分散バージョン管理システム )
22
引用 : ガチで 5 分で分かる分散型バージョン管理システム Git (http://image.itmedia.co.jp/ait/articles/1307/05/5min_git1.jpg)
23
分散型のメリット
取得など集中型より速いサーバーがなくても使えるリポジトリを幾らでも持てるブランチ、マージが楽↑ 集中型と分散型は同じ名前でも意味や概念が違うことがあるので注意!
24
引用 :Git-Subversion 比較 (http://www.backlog.jp/git-guide/reference/git-svn.html)
25
分散型のメリット詳細
ローカルリポジトリなので自分の好きな時にコミットできる。エラーでもコミット可能。
26
分散型のメリット詳細
リポジトリ自体をコピーできるので、場所を切り替えたり、複数上げたり、色々カスタマイズできる。安全性も高い。
27
僕の感じた分散型のメリット
Subversion と比べて、 logコマンドが圧倒的に速い。
28
僕の考える分散型の使い方
分散型の理想的な使い方は細かくコミットを繰り返す事かなと思う。あんまできてない。
29
分散型のデメリット?
「コミット→プッシュの 2 アクションが煩雑」とか「リビジョンが連続していないので扱いづらい」とか。↑ つまるところ集中型と分散型との違いを覚えていない。覚えるコストは集中型よりは高い
30
3.GitHub
31
分散型クライアント
分散型のクライアントソフトはいくつかあります
32
GitHub
正直分散型なら大差はないと思います。が、 GitHub が使えるという点で Git が一番かなと
33
GitHub のメリット
只ネットさえ繋がればいつでもどこからでも落とせるリポジトリ以外の機能も豊富デファクトスタンダードとしての安定感
35
最初から Free にチェックが付いているのでそのまま次へ
36
こんな画面になれば OK
37
早速リポジトリを作りましょう
38
A Start
こんな感じで。リポジトリ名はお好きに!
39
.gitignore
.gitignore ファイルに情報を書けばいらないファイルを無視してくれます。僕はこれを自動的に作ってくれるのが好きで GitHub から作る場合が多いです。
40
その他チケットを切ったりWiki を書けたり、ダウンロードしてもらう exe も配布可能
41
Travis CI, Jenkins, Coveralls,Code Climate など連携出来るサービスも多数
42
ぷるり
Pull Request を使えば、自分が気に入ったオープンソースで気づいたバグの修正を送るなんてことも出来ます。
43
複数人開発
ハッカソンではCollaborators にメンバーを追加してしまうのが手っ取り早い
44
gist
ハッカソンで共有が上手くいかない場合 Gist だけ使うもアリ
45
4.Git
46
僕が Git を始めた理由
僕が Git を使おうと思ったきっかけは Jenkins製作者の川口さんの一言SVN は 20世紀のバージョン管理、 Git は 21世紀のバージョン管理。これを聞いたら使うしかないじゃないですか!
48
初期設定
git config --global user.name ”moriri ring”git config --global user.email “[email protected]”
49
git initgit status -> ファイル追加(a.txt)git statusgit add a.txtgit statusgit commit –m “test comment”git log
50
git init 「リポジトリを作成」コマンドを実行すると .gitファイルが作られる
51
git status 「変更が加えられたファイルを表示する」--short と打つとシンプルで見やすい
52
git add < ファイル名 1> <ファイル名 2> … 「ステージにファイルを追加する」ワイルドカードも使える
53
引用 :Software Configuration Management (http://www.markus-gattol.name/ws/scm.html)
54
git commit –m ”< コミットメッセージ >” 「ステージをコミットする」-m 以下がないとテキストエディタが起動してコメントを記入。
55
git log 「コミットログを閲覧する」--graph でグラフ表示--oneline で一行表示
56
git remote add origin https://github.com/...git push –u origin master->Username, Password!git pull origin master
57
git remote add <name> <url> 「リモートリポジトリを追加」この作業は必須ではないがやると楽。要は短い別名を付ける。origin はデフォルト名
58
git push < リポジトリ > <ブランチ名 > 「リモートリポジトリにローカルリポジトリの内容を送信する」この時 ID と Password が必要
59
git pull < リポジトリ > < ブランチ名 > 「リモートリポジトリの変更点をローカルリポジトリにマージする」
60
a.txt 編集git diffb.txt 追加git add b.txtgit diff --stagedgit reset b.txtgit checkout a.txt
61
git diff 「変更されたファイルの差分を表示」引数なしはワークツリーとステージ。 --staged は次の commit で反映される変更を表示 。 HEAD だと直前の commit による変更を表示。status より詳細。
62
git reset 「ステージに登録したファイルを取り消す」ワークツリーの変更は残る
63
git checkout -- <file>「ワークツリーの変更を元に戻す」
64
git branch clean_upgit checkout clean_upgit rm “*.txt”git commit –m “remove all”git checkout mastergit merge clean_upgit branch –d clean_upgit push
65
git branch <branchname> 「ブランチを作成」
66
git checkout <branch>「ブランチを切り替え」
67
git rm <file> 「ファイルを削除」
68
git merge<branch> 「ブランチをマージ」
69
続きが気になる方は tryGit をみてくださいー。クリアするとバッチがもらえます!
70
コマンド
tryGit で出てきたコマンドは一通り覚えましょう。その方が Git の理解が深まると思います。
71
その後は GUI を使ったら良いと思います。コマンドにアイコンがあるのは分かりやすいし、クリックは楽です。
72
GitGUIクライアント
SourceTreeGithub for Win,MacVisual Studio!!!!!!!!
73
最後に git 、分散型のポイントはブランチにあると思います。
74
まとめ
Git も GitHub も単なる知識です。知っていると知っていないでは大きな差が出ます。出来る人と出来ない人の差は 10倍と言われる IT ですが、出来る人は道具の使い方が上手いです。10倍差はかなりの部分知識が大きいと思っています。
75
参考 URL
ガチで5分で分かる分散型バージョン管理システムGit
サルでもわかるGit入門 〜バージョン管理を使いこなそう – Backlog
もっと早く知りたかった! Gitが鬼のようにわかるスライド厳選7選
Gitを使いこなすための20のコマンドPro Git 日本語版電子書籍公開サイト transitive.info tryGitGitHub FlowGitHub実践入門( 書籍 )
76
おわりに
発表するとめちゃめちゃ勉強になります。皆さんもぜひ次はしゃべってください!
77
ご清聴ありがとうございました