Slide 1

Slide 1 text

書いたコードを管理する(Git) ひでシス=めぐみ・西岡 1

Slide 2

Slide 2 text

第3課の内容 • ファイルのバージョン管理ソフトについて学び ます – Gitでファイルを管理 – GitHubにアップロードして世界中に公開する 2

Slide 3

Slide 3 text

バージョン管理ソフトとは • ファイルを管理するときに • プレゼン_20121029.pptx • プレゼン_20121031.pptx • プレゼン_20121031(修正済み).pptx • プレゼン_20121031(最終稿).pptx • プレゼン_20121031(最終稿)(弄るな!).pptx – とかなっていませんか。 • 複数人でファイルを同時編集するにはどうし ますか。 Gitで解決 3

Slide 4

Slide 4 text

Gitとは • 分散型バージョン管理システム リポジトリ リポジトリ リポジトリ 分散 4

Slide 5

Slide 5 text

リポジトリとコミット • リポジトリ – 複数のファイルやディレクトリの状 態を管理するもの – コミットが過去から現在まで枝状 に履歴として保存されている • コミット – ある一時点での変更内容 コミット リポジトリ 5

Slide 6

Slide 6 text

ワークツリーとインデックス • ワークツリー – 見えているファイル・ディレクトリ構造 – ここでファイルを編集する • インデックス – コミットするファイルのリスト ワークツリー インデックス コミット 登録 コミット 取りやめ 6

Slide 7

Slide 7 text

Gitを使ってみよう! • やること – 前回の課題2ファイルをGitで管理します – 最終的にGitHubを使って世界中に公開します 7

Slide 8

Slide 8 text

Gitのユーザー設定 • `git config --global user.name "自分の名前"` • `git config --global user.email メールアドレス` – 自分の行うコミットに焼き付けられます – GitHubに公開すると、公開されますよ! 8

Slide 9

Slide 9 text

Gitリポジトリの作成 • /home/ユーザー名/nabeatsu ディレクトリを作 成 • 中に、前回の課題の回答2ファイルをコピー • nabeatsuに移動し、`git init .` – ディレクトリがGitリポジトリになります • `git status`で状態確認 9

Slide 10

Slide 10 text

インデックスへの登録 • `git add 課題ファイル名1` • `git add 課題ファイル名2` – ワークツリーにある課題ファイルがインデックスに 登録されます • `git status`で状態確認 – ちなみに、誤ったファイルを登録してしまったとき は、`git remove ファイル名`で取りやめできます 10

Slide 11

Slide 11 text

コミット • `git commit –m "ナベアツなう"` – インデックスに登録された2ファイルがコミットされ ます • `git status`で状態確認 11

Slide 12

Slide 12 text

ローカルリポジトリとリモートリポジトリ ローカル リポジトリ リモート リポジトリ リモート リポジトリ 分散 12

Slide 13

Slide 13 text

GitHubにリモートリポジトリを作ろう • GitHubとは – Gitのリポジトリを置けるサービス – 内容をWebから見れる – 編集要請を発行することができる – https://github.com/ 13

Slide 14

Slide 14 text

GitHubにリモートリポジトリを作ろう 14

Slide 15

Slide 15 text

リモートリポジトリのアドレスを ローカルリポジトリに登録する • `git remote add origin https://github.com/hidesys/nabeatsu.git` – originという名前でGitHubのアドレスを登録 15

Slide 16

Slide 16 text

変更内容をプッシュする • `git push -u origin master` – originリモートに対してmasterブランチをpush 16

Slide 17

Slide 17 text

ブランチとは? • 枝 • コミットの系列に対して 付けられる別名 • 本branchの名前は masterというのが慣例 – バグ修正の時に新しく ブランチを切り、編集し てからマージする コミット リポジトリ ブランチ(枝) 17

Slide 18

Slide 18 text

ブランチ関連の操作 • `git branch` – ブランチ一覧の表示 • `git branch 新しいブランチ名` – 現在のコミットから新しくブランチを作成 • `git checkout ブランチ名` – ワークツリーの内容をブランチに切り替え 18

Slide 19

Slide 19 text

README.mdを追加するブランチを作 る • `git branch add-readme` – readmeブランチを作成 • `git branch` – branch一覧を確認 • `git checkout add-readme` – add-readmeブランチに切り替え • `git branch` – branch一覧を確認 19

Slide 20

Slide 20 text

README.md追加ブランチで編集 • `nano README.md ` – README.mdの中身を作成 • `git status` – 現状を確認 • `git add README.md` – インデックスに登録 • `git status` – 現状を確認 • `git commit –m "README.md追加"` 20

Slide 21

Slide 21 text

変更をpush • `git push origin add-readme` – add-readmeブランチをoriginにpush • `git branch -a` • GitHubで確認 21

Slide 22

Slide 22 text

変更をマージ • GitHub上でやってみよう 1. add-readmeブランチのmasterブランチへの プルリクエストを作成 2. オッケーならマージボタンを押す 22

Slide 23

Slide 23 text

変更をpull • `git checkout master` – masterブランチに切り替える • `ls` – README.mdはこのブランチにはありません • `git pull origin master` – originリモートリポジトリの最新版を取ってくる • `ls` – README.mdが追加されていることを確認 • `git log` – 履歴を確認してみよう! 23

Slide 24

Slide 24 text

GitHubではなく手元でmergeするには • `git checkout master` – masterブランチに切り替え • `git merge add-readme` – add-readmeブランチをマージ 24

Slide 25

Slide 25 text

Gitのログを見よう! • `git log --graph` – マージの様子などが時系列順に見れる! • 最新が下 25

Slide 26

Slide 26 text

昔のコミットに戻るには? • `git log` – 過去のコミット一覧を参照 • `git checkout コミットハッシュの先頭4文字` – `git checkout 3f2e`など。 – `git log`で表示されているハッシュを使う • `git branch` – 自分がdedtached headに居ることを確認 • 元に戻るときは`git checkout master` 26

Slide 27

Slide 27 text

【メンバー向け】 GitHubのOrganizationに参加してね • GitHubアカウントのidを、hidesys, universato 等に教えてください。Organizationに招待しま す。 • 過去のコードや課題などを見れます。 • https://github.com/onemonthweb 27