いちばんやさしいGit入門
by
syobochim
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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