15
情報メディア専門ユニット2 KinectC#を用いた 実践的VRアプリ開発 3Gitとブランチ 神奈川工科大学 情報学部 情報メディア学科 白井研究室 白井暁彦 准教授

KinectとC#を用いた実践的VRアプリ開発 第3回 2015/10/20 Gitとブランチ, Pull Request編

Embed Size (px)

Citation preview

Page 1: KinectとC#を用いた実践的VRアプリ開発 第3回 2015/10/20 Gitとブランチ, Pull Request編

情報メディア専門ユニット2KinectとC#を用いた実践的VRアプリ開発

第3回Gitとブランチ

神奈川工科大学情報学部

情報メディア学科 白井研究室

白井暁彦准教授

Page 2: KinectとC#を用いた実践的VRアプリ開発 第3回 2015/10/20 Gitとブランチ, Pull Request編

課題#2:C#プログラミング「CookieClicker」

Gitでのbranchを学ぶ

課題#3:ブランチを作ってプルリクエストをする

第3回やること

Page 3: KinectとC#を用いた実践的VRアプリ開発 第3回 2015/10/20 Gitとブランチ, Pull Request編

リポジトリを分岐させることができる.

一部仕様を変えて試したいけど,今の状態を壊したくないときに…

ブランチごとに変更履歴を記録するので,あるブランチを変更しても他のブランチには影響を及ぼさない.

=新しい機能を試作する際には,ブランチを生成しておくと便利.

ブランチ(branch)とは?

Page 4: KinectとC#を用いた実践的VRアプリ開発 第3回 2015/10/20 Gitとブランチ, Pull Request編

git checkout –b “ブランチ名”

1. GitShell起動

2. cd Kinect2015 git pull もわすれずに!

3. git checkout –b 1234567 (←任意文字列,とりあえず学籍番号でお願い)

4. コマンドプロンプトが[master]→[1234567]に変わる

5. git branch で確認(現在のブランチに * がつく)

ブランチの切り替え

1. git checkout 1234567 (すでに切り替わっているとは思うが)

2. git checkout master

3. git branch で確認(現在のブランチに * がつく)

ブランチの削除

1. git branch –D 1234567 (masterに切り替えてから実行)

2. git brachで確認(現在は *master になっているはず)

☆これはローカルブランチなので何度でも試せます,やってみよう.

ローカルブランチを作って消す

Page 5: KinectとC#を用いた実践的VRアプリ開発 第3回 2015/10/20 Gitとブランチ, Pull Request編

git checkoutコマンドで書き換え中のファイルを瞬時に切り替え可能

1. git checkout –b 1234567 (←学籍番号でお願い)

2. cd Kadai01

3. touch 1234567.txt (←学籍番号.txtファイルを作るコマンド)

4. notepad 1234567.txt (メモ帳起動)

5. (学籍番号と現在の時刻を記入してCtrl+S→閉じる)

6. git add . もしくは git add -A (削除ファイルも含む)

7. git commit –m “memo”(超重要,ここでローカルブランチに保存)

8. git checkout master (ここでファイルが消える!)

9. git checkout 1234567 (ここでファイルが復活する!)

☆ローカルブランチの変更もいつでも戻ることができるようになった

ブランチを使って瞬時に切替

Page 6: KinectとC#を用いた実践的VRアプリ開発 第3回 2015/10/20 Gitとブランチ, Pull Request編

ブランチを結合する

ブランチ側で実装した機能をmaster側にも反映させたい

☆ここでいうmasterはローカルリポジトリのmaster

Git merge [結合させたいブランチ名]

git checkout –b test2

notepad 123467.txt (先のテキストファイルに変更を加える)

git add .

git commit –m “1234567 on test2”

git checkout 1234567

git merge test2

マージ(merge)

master1234567

test2

1234567

Page 7: KinectとC#を用いた実践的VRアプリ開発 第3回 2015/10/20 Gitとブランチ, Pull Request編

ローカルブランチを作ったことをリモート(origin)に伝える

変更をmaster(origin)に対して突きつける

変更があるローカルブランチから(前項の続き)

> git push origin 1234567

ブラウザで確認

Your recently pushed branches…に表示されていることを確認

リモートリポジトリにプッシュする

Page 8: KinectとC#を用いた実践的VRアプリ開発 第3回 2015/10/20 Gitとブランチ, Pull Request編

Issuesが片付いたらコードを提出してレビューしてもらい本体へ!

以下のようなワークフロー

1. [Issues]で課題が設定される

2. 最新のソースツリーを入手: git pull

3. ブランチを切る: git checkout –b 1234567 (学籍番号)

ローカルリポジトリでの作業

さらにもう一度ブランチのブランチを切ってよい git checkout –b test2

git add .

git commit –m “1234567 on test2”

git checkout 1234567

git merge test2

4. git push origin 1234567

5. Pull Request (提出物を確認してもらう)

Pull Request /プル・リクエスト

master1234567

test2

1234567

Page 9: KinectとC#を用いた実践的VRアプリ開発 第3回 2015/10/20 Gitとブランチ, Pull Request編

ブラウザでGithubリポジトリへ

Page 10: KinectとC#を用いた実践的VRアプリ開発 第3回 2015/10/20 Gitとブランチ, Pull Request編

Pull requestをして課題2を提出

Page 11: KinectとC#を用いた実践的VRアプリ開発 第3回 2015/10/20 Gitとブランチ, Pull Request編

衝突がなければ自動merge可

Page 12: KinectとC#を用いた実践的VRアプリ開発 第3回 2015/10/20 Gitとブランチ, Pull Request編

先生(管理者)は課題を受け取ったら不要なブランチは削除

学生はそのブランチを持っていてもいいが,きりのいいところで削除したほうがいいと思う(長期管理ならfork)

先生側での確認・結合作業

Page 13: KinectとC#を用いた実践的VRアプリ開発 第3回 2015/10/20 Gitとブランチ, Pull Request編

あくまで後片付けは自分でやろうね(先生は管理できません!)

git checkout master (masterに切り替え)

git branch (現存するブランチのリストを見る)

git branch –D 1234567

git branch –D test2

git branch (現存するブランチのリストを見る→masterのみ)

git pull (最新をoriginから取得)

ローカルブランチの削除

Page 14: KinectとC#を用いた実践的VRアプリ開発 第3回 2015/10/20 Gitとブランチ, Pull Request編

前の状態に戻りたい

git reset –hard変更はすべて失われる

削除した/削除扱いされたファイルが原因でコミットできない

git add –A

何が起きているかわからないが色が変わっている

git status

知っておくといい解決形コマンド

Page 15: KinectとC#を用いた実践的VRアプリ開発 第3回 2015/10/20 Gitとブランチ, Pull Request編

課題#3:C#プログラミングでGitを使う

1. WPFで絵を描くサンプル「GraphicSave」を使用

2. 自分の学籍番号のクラスファイルを更新し,図形を描く.

3. (ビルドが通る状態で,ソースコードにコメントを書いて)Pull Request

4. (来週月曜)全部提出された状態で結合して結果を見る

課題#3:WPFプログラミングでGit