今日から始めるgit & github入門

77
今今今今今今今 Git & GitHub 今今 Write by 今今 今

Upload: -

Post on 20-Aug-2015

1.543 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: 今日から始めるGit & GitHub入門

今日から始めるGit & GitHub 入門Write by 森理 麟

Page 2: 今日から始めるGit & GitHub入門

2

Myself

森理 麟 (@moririring)職業:ゲームプログラマHP : moririringのHPMicrosoft MVP for Visual C#(2013.01 –)

Page 4: 今日から始めるGit & GitHub入門

4

はじめに

Windows の人は Git をダウンロードしておいてください。Mac はデフォで入っています。http://git-scm.com/

MatsuiBin
Page 5: 今日から始めるGit & GitHub入門

5

質問

Page 6: 今日から始めるGit & GitHub入門

6

GitHub

GitHub のアカウントを持っていない人ー?

MatsuiBin
Page 7: 今日から始めるGit & GitHub入門

7

Git

Git を使ったことがない人ー?

MatsuiBin
Page 8: 今日から始めるGit & GitHub入門

8

DVCS

分散バージョン管理システムを聞いたことない人ー?

MatsuiBin
Page 9: 今日から始めるGit & GitHub入門

9

CVCS

Subversion も知らない人ー?へ?居るの?

MatsuiBin
Page 10: 今日から始めるGit & GitHub入門

10

1. CVCS( 集中型バージョン管理システム )

Page 11: 今日から始めるGit & GitHub入門

11

集中型の図

引用 : ガチで 5 分で分かる分散型バージョン管理システム Git (http://image.itmedia.co.jp/ait/articles/1307/05/5min_git1.jpg)

MatsuiBin
Page 12: 今日から始めるGit & GitHub入門

12

バージョン管理のメリット

バージョン毎のバックアップ差分での効率的な転送好きなバージョンの復元複数人での共同開発同じファイルを編集しても別箇所なら自動で対応 ( マージ )

MatsuiBin
Page 13: 今日から始めるGit & GitHub入門

13

せめてちゃんとした日付をつけよう Yo

バージョン管理をすれば少なくともこれは止められる

引用 :Git を使ったバージョン管理 (http://www.backlog.jp/git-guide/img/post/intro/capture_intro1_1_1.png)

MatsuiBin
Page 14: 今日から始めるGit & GitHub入門

14

僕が感じるバージョン管理のメリット1

ソースに余計なコメントを残さなくなった!

MatsuiBin
Page 15: 今日から始めるGit & GitHub入門

15

僕が感じるバージョン管理のメリット2

更新前に差分を確認するようになり、少しでも差分を少なくするようになった!

MatsuiBin
Page 16: 今日から始めるGit & GitHub入門

16

集中型のデメリット

皆で同じ情報を共有する仕組みは自分の都合だけでアップできない

MatsuiBin
Page 17: 今日から始めるGit & GitHub入門

17

集中型のデメリット

わかりやすい例はエラーを上げれば皆がエラー

MatsuiBin
Page 18: 今日から始めるGit & GitHub入門

18

集中型のデメリット

リリースが近くなるとさらに慎重になり、 Excel でコミット管理というホラーもある

MatsuiBin
Page 19: 今日から始めるGit & GitHub入門

19

集中型でやらないこと

集中型ではバージョンを戻すというのはあまりやらないかも

MatsuiBin
Page 20: 今日から始めるGit & GitHub入門

20

集中型でやらないこと

集中型ではブランチは単なるバックアップで、進めてもマージはあまりしないかも

MatsuiBin
Page 21: 今日から始めるGit & GitHub入門

21

2.DVCS( 分散バージョン管理システム )

Page 22: 今日から始めるGit & GitHub入門

22

引用 : ガチで 5 分で分かる分散型バージョン管理システム Git (http://image.itmedia.co.jp/ait/articles/1307/05/5min_git1.jpg)

MatsuiBin
Page 23: 今日から始めるGit & GitHub入門

23

分散型のメリット

取得など集中型より速いサーバーがなくても使えるリポジトリを幾らでも持てるブランチ、マージが楽↑ 集中型と分散型は同じ名前でも意味や概念が違うことがあるので注意!

MatsuiBin
Page 24: 今日から始めるGit & GitHub入門

24

引用 :Git-Subversion 比較 (http://www.backlog.jp/git-guide/reference/git-svn.html)

MatsuiBin
Page 25: 今日から始めるGit & GitHub入門

25

分散型のメリット詳細

ローカルリポジトリなので自分の好きな時にコミットできる。エラーでもコミット可能。

MatsuiBin
Page 26: 今日から始めるGit & GitHub入門

26

分散型のメリット詳細

リポジトリ自体をコピーできるので、場所を切り替えたり、複数上げたり、色々カスタマイズできる。安全性も高い。

MatsuiBin
Page 27: 今日から始めるGit & GitHub入門

27

僕の感じた分散型のメリット

Subversion と比べて、 logコマンドが圧倒的に速い。

MatsuiBin
Page 28: 今日から始めるGit & GitHub入門

28

僕の考える分散型の使い方

分散型の理想的な使い方は細かくコミットを繰り返す事かなと思う。あんまできてない。

MatsuiBin
Page 29: 今日から始めるGit & GitHub入門

29

分散型のデメリット?

「コミット→プッシュの 2 アクションが煩雑」とか「リビジョンが連続していないので扱いづらい」とか。↑ つまるところ集中型と分散型との違いを覚えていない。覚えるコストは集中型よりは高い

MatsuiBin
Page 30: 今日から始めるGit & GitHub入門

30

3.GitHub

Page 31: 今日から始めるGit & GitHub入門

31

分散型クライアント

分散型のクライアントソフトはいくつかあります

MatsuiBin
Page 32: 今日から始めるGit & GitHub入門

32

GitHub

正直分散型なら大差はないと思います。が、 GitHub が使えるという点で Git が一番かなと

MatsuiBin
Page 33: 今日から始めるGit & GitHub入門

33

GitHub のメリット

只ネットさえ繋がればいつでもどこからでも落とせるリポジトリ以外の機能も豊富デファクトスタンダードとしての安定感

MatsuiBin
Page 34: 今日から始めるGit & GitHub入門

34

アカウント取得

https://github.com にアクセスして情報を入力

MatsuiBin
Page 35: 今日から始めるGit & GitHub入門

35

最初から Free にチェックが付いているのでそのまま次へ

MatsuiBin
Page 36: 今日から始めるGit & GitHub入門

36

こんな画面になれば OK

MatsuiBin
Page 37: 今日から始めるGit & GitHub入門

37

早速リポジトリを作りましょう

MatsuiBin
Page 38: 今日から始めるGit & GitHub入門

38

A Start

こんな感じで。リポジトリ名はお好きに!

MatsuiBin
Page 39: 今日から始めるGit & GitHub入門

39

.gitignore

.gitignore ファイルに情報を書けばいらないファイルを無視してくれます。僕はこれを自動的に作ってくれるのが好きで GitHub から作る場合が多いです。

MatsuiBin
Page 40: 今日から始めるGit & GitHub入門

40

その他チケットを切ったりWiki を書けたり、ダウンロードしてもらう exe も配布可能

MatsuiBin
Page 41: 今日から始めるGit & GitHub入門

41

Travis CI, Jenkins, Coveralls,Code Climate など連携出来るサービスも多数

MatsuiBin
Page 42: 今日から始めるGit & GitHub入門

42

ぷるり

Pull Request を使えば、自分が気に入ったオープンソースで気づいたバグの修正を送るなんてことも出来ます。

MatsuiBin
Page 43: 今日から始めるGit & GitHub入門

43

複数人開発

ハッカソンではCollaborators にメンバーを追加してしまうのが手っ取り早い

MatsuiBin
Page 44: 今日から始めるGit & GitHub入門

44

gist

ハッカソンで共有が上手くいかない場合 Gist だけ使うもアリ

MatsuiBin
Page 45: 今日から始めるGit & GitHub入門

45

4.Git

Page 46: 今日から始めるGit & GitHub入門

46

僕が Git を始めた理由

僕が Git を使おうと思ったきっかけは Jenkins製作者の川口さんの一言SVN は 20世紀のバージョン管理、 Git は 21世紀のバージョン管理。これを聞いたら使うしかないじゃないですか!

MatsuiBin
Page 47: 今日から始めるGit & GitHub入門

47

今日は tryGitをトレースしますー

MatsuiBin
Page 48: 今日から始めるGit & GitHub入門

48

初期設定

git config --global user.name ”moriri ring”git config --global user.email “[email protected]

MatsuiBin
Page 49: 今日から始めるGit & GitHub入門

49

git initgit status -> ファイル追加(a.txt)git statusgit add a.txtgit statusgit commit –m “test comment”git log

MatsuiBin
Page 50: 今日から始めるGit & GitHub入門

50

git init 「リポジトリを作成」コマンドを実行すると .gitファイルが作られる

MatsuiBin
Page 51: 今日から始めるGit & GitHub入門

51

git status 「変更が加えられたファイルを表示する」--short と打つとシンプルで見やすい

MatsuiBin
Page 52: 今日から始めるGit & GitHub入門

52

git add < ファイル名 1> <ファイル名 2> … 「ステージにファイルを追加する」ワイルドカードも使える

MatsuiBin
Page 53: 今日から始めるGit & GitHub入門

53

引用 :Software Configuration Management (http://www.markus-gattol.name/ws/scm.html)

MatsuiBin
Page 54: 今日から始めるGit & GitHub入門

54

git commit –m ”< コミットメッセージ >” 「ステージをコミットする」-m 以下がないとテキストエディタが起動してコメントを記入。

MatsuiBin
Page 55: 今日から始めるGit & GitHub入門

55

git log 「コミットログを閲覧する」--graph でグラフ表示--oneline で一行表示

MatsuiBin
Page 56: 今日から始めるGit & GitHub入門

56

git remote add origin https://github.com/...git push –u origin master->Username, Password!git pull origin master

MatsuiBin
Page 57: 今日から始めるGit & GitHub入門

57

git remote add <name> <url> 「リモートリポジトリを追加」この作業は必須ではないがやると楽。要は短い別名を付ける。origin はデフォルト名

MatsuiBin
Page 58: 今日から始めるGit & GitHub入門

58

git push < リポジトリ > <ブランチ名 > 「リモートリポジトリにローカルリポジトリの内容を送信する」この時 ID と Password が必要

MatsuiBin
Page 59: 今日から始めるGit & GitHub入門

59

git pull < リポジトリ > < ブランチ名 > 「リモートリポジトリの変更点をローカルリポジトリにマージする」

MatsuiBin
Page 60: 今日から始めるGit & GitHub入門

60

a.txt 編集git diffb.txt 追加git add b.txtgit diff --stagedgit reset b.txtgit checkout a.txt

MatsuiBin
Page 61: 今日から始めるGit & GitHub入門

61

git diff 「変更されたファイルの差分を表示」引数なしはワークツリーとステージ。 --staged は次の commit で反映される変更を表示 。 HEAD だと直前の commit による変更を表示。status より詳細。

MatsuiBin
Page 62: 今日から始めるGit & GitHub入門

62

git reset 「ステージに登録したファイルを取り消す」ワークツリーの変更は残る

MatsuiBin
Page 63: 今日から始めるGit & GitHub入門

63

git checkout -- <file>「ワークツリーの変更を元に戻す」

MatsuiBin
Page 64: 今日から始めるGit & GitHub入門

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

MatsuiBin
Page 65: 今日から始めるGit & GitHub入門

65

git branch <branchname> 「ブランチを作成」

MatsuiBin
Page 66: 今日から始めるGit & GitHub入門

66

git checkout <branch>「ブランチを切り替え」

MatsuiBin
Page 67: 今日から始めるGit & GitHub入門

67

git rm <file> 「ファイルを削除」

MatsuiBin
Page 68: 今日から始めるGit & GitHub入門

68

git merge<branch> 「ブランチをマージ」

MatsuiBin
Page 69: 今日から始めるGit & GitHub入門

69

続きが気になる方は tryGit をみてくださいー。クリアするとバッチがもらえます!

MatsuiBin
Page 70: 今日から始めるGit & GitHub入門

70

コマンド

tryGit で出てきたコマンドは一通り覚えましょう。その方が Git の理解が深まると思います。

MatsuiBin
Page 71: 今日から始めるGit & GitHub入門

71

その後は GUI を使ったら良いと思います。コマンドにアイコンがあるのは分かりやすいし、クリックは楽です。

MatsuiBin
Page 73: 今日から始めるGit & GitHub入門

73

最後に git 、分散型のポイントはブランチにあると思います。

MatsuiBin
Page 74: 今日から始めるGit & GitHub入門

74

まとめ

Git も GitHub も単なる知識です。知っていると知っていないでは大きな差が出ます。出来る人と出来ない人の差は 10倍と言われる IT ですが、出来る人は道具の使い方が上手いです。10倍差はかなりの部分知識が大きいと思っています。

MatsuiBin
Page 75: 今日から始めるGit & GitHub入門

75

参考 URL

ガチで5分で分かる分散型バージョン管理システムGit

サルでもわかるGit入門 〜バージョン管理を使いこなそう – Backlog

もっと早く知りたかった! Gitが鬼のようにわかるスライド厳選7選

Gitを使いこなすための20のコマンドPro Git 日本語版電子書籍公開サイト transitive.info tryGitGitHub FlowGitHub実践入門( 書籍 )

MatsuiBin
Page 76: 今日から始めるGit & GitHub入門

76

おわりに

発表するとめちゃめちゃ勉強になります。皆さんもぜひ次はしゃべってください!

MatsuiBin
Page 77: 今日から始めるGit & GitHub入門

77

ご清聴ありがとうございました

MatsuiBin