Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
いちばんやさしいGit入門 2019/4/25 JJUG #jjug 宇賀神 みずき しょぼちむ(@syobochim) #jjug
Slide 2
Slide 2 text
よろしくお願いします! 宇賀神 みずき しょぼちむ(@syobochim) 『いちばんやさしいGit&GitHubの教本』 書きました! YouTube始めました! チャンネル登録お願いします #jjug
Slide 3
Slide 3 text
このセッションの目的 新たにGitを学びたい方に Gitの概念やGitコマンドを理解してもらう #jjug
Slide 4
Slide 4 text
もくじ 1. バージョン管理とは? 2. Gitの考え方 3. Gitの操作 4. Gitの勉強方法 #jjug
Slide 5
Slide 5 text
もくじ 1. バージョン管理とは? 2. Gitの考え方 3. Gitの操作 4. Gitの勉強方法 #jjug
Slide 6
Slide 6 text
バージョンとは それぞれのファイルの状態 =バージョン ファイルの複数バージョンを 保持すること=バージョン管理 #jjug
Slide 7
Slide 7 text
バージョン管理がうまくいかないと… 原始的なバージョン管理→バックアップを取り続ける • コピーに手間がかかる • ファイル名の一貫性が失われると崩壊する • うっかり上書きや削除をしてしまう 本当の最新はどれ?! #jjug
Slide 8
Slide 8 text
バージョン管理ができるGit ファイルの変更を「バージョン」として保存して 記録した地点へいつでも戻れる 作業者が複数人いても 最新状態や履歴をわかりやすく保てる 記録したバージョンに いつでも戻れる #jjug
Slide 9
Slide 9 text
もくじ 1. バージョン管理とは? 2. Gitの考え方 3. Gitの操作 4. Gitの勉強方法 #jjug
Slide 10
Slide 10 text
ファイルの変更を記録 = コミット 「いつ」「誰が」「どんな変更を」 したか記録されていく コミットをどんどん 保存していく コミット単位で 行き来できる #jjug
Slide 11
Slide 11 text
コミットのタイミング 意味を持ったまとまりや 後から扱いやすい単位でコミットをしよう #jjug
Slide 12
Slide 12 text
コミットの保管場所 = リポジトリ リポジトリは 「新規作成する」か 「既存のリポジトリをコピー(クローン)する」 方法がある 「リポジトリ」に コミットを貯めていく #jjug
Slide 13
Slide 13 text
2種類のリポジトリ 自分しか触らない 複数人で共有することが多い #jjug
Slide 14
Slide 14 text
2種類のリポジトリを使った共同作業 ローカルリポジトリから リモートリポジトリへ反映したり リモートリポジトリから ローカルリポジトリへ反映したり これを繰り返してコミットを共有し、共同作業を進めていく #jjug
Slide 15
Slide 15 text
もくじ 1. バージョン管理とは? 2. Gitの考え方 3. Gitの操作 4. Gitの勉強方法 #jjug
Slide 16
Slide 16 text
2種類のリポジトリ 自分しか触らない 複数人で共有することが多い #jjug
Slide 17
Slide 17 text
それぞれのリポジトリでの操作 自分しか触らない 複数人で共有することが多い まずはローカルリポジトリ #jjug
Slide 18
Slide 18 text
ローカルリポジトリの3つの場所 ワークツリー ステージングエリア Gitディレクトリ 編集する コミットしたい ファイルを登録する コミットする #jjug
Slide 19
Slide 19 text
ワークツリー ステージングエリア Gitディレクトリ コミットしたい ファイルを登録する コミットする 編集する 変更するファイルを保持する場所 「ワーキングツリー」 「作業ディレクトリ」とも呼ばれる #jjug
Slide 20
Slide 20 text
ステージングエリア ワークツリー Gitディレクトリ コミットする コミットしたい ファイルを登録する コミットするファイルを 一時登録する場所 編集済みのものから コミットしたい ファイルだけを抜き出せる →コミットの単位を 操作しやすくなる 「インデックス」と呼ばれ ることもある #jjug
Slide 21
Slide 21 text
コミットしたい ファイルを登録する Gitディレクトリ ワークツリー コミットする コミットを格納する場所 原則、コミットで記録した内容は 変更・削除されない #jjug
Slide 22
Slide 22 text
ローカルリポジトリの3つの場所 ワークツリー ステージングエリア Gitディレクトリ 編集する コミットしたい ファイルを登録する コミットする #jjug
Slide 23
Slide 23 text
最低限覚えておきたいコマンド (前半) #jjug
Slide 24
Slide 24 text
ローカルリポジトリを作成する 通常の ディレクトリ リモートリポジトリ ローカルリポジトリ git init git clone 新規作成 既存をコピー #jjug
Slide 25
Slide 25 text
コミットまでの流れ ワークツリー ステージングエリア Gitディレクトリ コミットしたい ファイルを登録する git add git commit コミットする #jjug
Slide 26
Slide 26 text
ステータスの確認 git status 現在のローカルリポジトリの 状態を確認 0OCSBODINBTUFS $IBOHFTUPCFDPNNJUFE ʢதུʣ ɹɹOFXpMF(JU@.&.0NE 全てコミット済み (中略) ファイルを編集 (中略) ファイルを新規作成 (中略) ステージングに登録 #jjug
Slide 27
Slide 27 text
履歴の確認 git log コミットの履歴を確認 -p オプションをつけると どんな変更をしたかも 確認できる #jjug ichiyasa
Slide 28
Slide 28 text
紹介したコマンド(前半) • git init • ローカルリポジトリの作成 • git clone • リモートリポジトリからリポジトリをコピー • git add • コミットしたいファイルをステージングエリアへ 登録 • git commit • ステージングエリアの変更をコミットする • git status • ローカルリポジトリの状態確認 • git log • コミット履歴の確認 #jjug
Slide 29
Slide 29 text
それぞれのリポジトリでの操作 自分しか触らない 複数人で共有することが多い ローカルリポジトリここまで #jjug
Slide 30
Slide 30 text
それぞれのリポジトリでの操作 自分しか触らない 複数人で共有することが多い お次はリモートリポジトリ #jjug
Slide 31
Slide 31 text
リモートリポジトリの役割 コミットは任意のタイミングで リモートリポジトリに反映 任意のタイミングで ローカルリポジトリに反映 #jjug
Slide 32
Slide 32 text
共同作業の難しさ 来週リリースの機能が すでに入っている…?! #jjug
Slide 33
Slide 33 text
共同作業に役立つブランチ 同͡リϙδトリͰ複数の作業を並行して進め、 任意の時点Ͱ反映Ͱきる ブランチを統合すること=「マージ」 masterブランチ トピックブランチ #jjug
Slide 34
Slide 34 text
マージで発生する変更の衝突 開催地:沖縄県 開催地:東京都 開催地:北海道 マージできない! ❌ 変更の衝突を 「コンフリクト」や「競合」 と呼びます。 #jjug
Slide 35
Slide 35 text
コンフリクトを解決する コンフリクトが発生している時の git status <<<<<<<< コンフリクトしている箇所の開始地点 >>>>>>>>> コンフリクトしている箇所の終了地点 ======== 2つのブランチの境目 1. ファイルを正しく変更して 2. コンフリクトの印である記号を消して 3. コミットする #jjug
Slide 36
Slide 36 text
最低限覚えておきたいコマンド (後半) #jjug
Slide 37
Slide 37 text
リモートリポジトリの役割 任意のタイミングで ローカルリポジトリに反映 git pull git push コミットは任意のタイミングで リモートリポジトリに反映 #jjug
Slide 38
Slide 38 text
ローカルリポジトリ→リモートリポジトリ ローカルリポジトリ リモートリポジトリ git push origin update-venue プッシュ先の リモートリポジトリの名前 プッシュするブランチ名 #jjug
Slide 39
Slide 39 text
リモートリポジトリ→ローカルリポジトリ ローカルリポジトリ リモートリポジトリ git pull origin master プル先の リモートリポジトリの名前 プルするブランチ名 #jjug #jjug
Slide 40
Slide 40 text
ブランチの作成と移動 git branch update-venue 作成するブランチ名 git checkout update-venue 切り替え先の ブランチ名 ブランチを切り替えて から作業する update-venue master git merge master 変更を取り込みたい ブランチ update-venue master masterブランチの 最新情報を取り込む update-venue master #jjug
Slide 41
Slide 41 text
紹介したコマンド(後半) • git push • ローカルリポジトリからリモートリポジトリへ反映 • git pull • リモートリポジトリからローカルリポジトリへ反映 • git branch • ブランチの作成 • git checkout • ブランチの切り替え • git merge • ブランチの統合 #jjug
Slide 42
Slide 42 text
最低限覚えておきたいコマンド (まとめ) #jjug
Slide 43
Slide 43 text
紹介したコマンド(前半) • git init • ローカルリポジトリの作成 • git clone • リモートリポジトリからリポジトリをコピー • git add • コミットしたいファイルをステージングエリアへ 登録 • git commit • ステージングエリアの変更をコミットする • git status • ローカルリポジトリの状態確認 • git log • コミット履歴の確認 #jjug
Slide 44
Slide 44 text
紹介したコマンド(後半) • git push • ローカルリポジトリからリモートリポジトリへ反映 • git pull • リモートリポジトリからローカルリポジトリへ反映 • git branch • ブランチの作成 • git checkout • ブランチの切り替え • git merge • ブランチの統合 #jjug
Slide 45
Slide 45 text
もくじ 1. バージョン管理とは? 2. Gitの考え方 3. Gitの操作 4. Gitの勉強方法 #jjug
Slide 46
Slide 46 text
実際に使ってみるのがいちばん! 一人でも始められる! プログラミング以外でもバージョン管理は役に立つ! • 業務で開発しているプロジェクトのソースコード • 趣味で開発しているプロジェクトのソースコード • 勉強会メモ • 書籍の原稿 などなど… #jjug
Slide 47
Slide 47 text
コマンドに慣れない… 無理をせずGUIクライアントを試してみよう! 大切なのは、Gitで何ができるのかを理解して 自分はどこでどんな操作をしているのか意識すること! #jjug
Slide 48
Slide 48 text
おすすめ書籍 詳しく、丁寧に、そして いちばんやさしく 書いてある #jjug
Slide 49
Slide 49 text
書籍で紹介しているコマンドたち git checkout git rm git diff git reset git config git remote git fetch #jjug
Slide 50
Slide 50 text
もくじ 1. バージョン管理とは? 2. Gitの考え方 3. Gitの操作 4. Gitの勉強方法 #jjug
Slide 51
Slide 51 text
最後に JJUGのセミナーがきっかけで 「いちばんやさしいGit&GitHubの教本」 を書くことになりました! JJUGのみなさまありがとうございます! 書籍お持ちの方はAmazonレビューを 是非お願いします! (やさしくお願いします) #jjug
Slide 52
Slide 52 text
ありがとうございました! #jjug