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

Post on 20-Aug-2015

1.544 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

2

Myself

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

4

はじめに

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

MatsuiBin

5

質問

6

GitHub

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

MatsuiBin

7

Git

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

MatsuiBin

8

DVCS

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

MatsuiBin

9

CVCS

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

MatsuiBin

10

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

11

集中型の図

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

MatsuiBin

12

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

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

MatsuiBin

13

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

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

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

MatsuiBin

14

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

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

MatsuiBin

15

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

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

MatsuiBin

16

集中型のデメリット

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

MatsuiBin

17

集中型のデメリット

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

MatsuiBin

18

集中型のデメリット

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

MatsuiBin

19

集中型でやらないこと

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

MatsuiBin

20

集中型でやらないこと

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

MatsuiBin

21

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

22

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

MatsuiBin

23

分散型のメリット

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

MatsuiBin

24

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

MatsuiBin

25

分散型のメリット詳細

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

MatsuiBin

26

分散型のメリット詳細

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

MatsuiBin

27

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

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

MatsuiBin

28

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

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

MatsuiBin

29

分散型のデメリット?

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

MatsuiBin

30

3.GitHub

31

分散型クライアント

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

MatsuiBin

32

GitHub

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

MatsuiBin

33

GitHub のメリット

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

MatsuiBin

34

アカウント取得

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

MatsuiBin

35

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

MatsuiBin

36

こんな画面になれば OK

MatsuiBin

37

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

MatsuiBin

38

A Start

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

MatsuiBin

39

.gitignore

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

MatsuiBin

40

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

MatsuiBin

41

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

MatsuiBin

42

ぷるり

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

MatsuiBin

43

複数人開発

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

MatsuiBin

44

gist

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

MatsuiBin

45

4.Git

46

僕が Git を始めた理由

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

MatsuiBin

47

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

MatsuiBin

48

初期設定

git config --global user.name ”moriri ring”git config --global user.email “moririring@example.com”

MatsuiBin

49

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

MatsuiBin

50

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

MatsuiBin

51

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

MatsuiBin

52

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

MatsuiBin

53

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

MatsuiBin

54

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

MatsuiBin

55

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

MatsuiBin

56

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

MatsuiBin

57

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

MatsuiBin

58

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

MatsuiBin

59

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

MatsuiBin

60

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

MatsuiBin

61

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

MatsuiBin

62

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

MatsuiBin

63

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

MatsuiBin

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

65

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

MatsuiBin

66

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

MatsuiBin

67

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

MatsuiBin

68

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

MatsuiBin

69

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

MatsuiBin

70

コマンド

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

MatsuiBin

71

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

MatsuiBin

73

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

MatsuiBin

74

まとめ

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

MatsuiBin

75

参考 URL

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

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

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

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

MatsuiBin

76

おわりに

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

MatsuiBin

77

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

MatsuiBin

top related