Upload
akihiko-shirai
View
798
Download
2
Embed Size (px)
Citation preview
情報メディア専門ユニット2KinectとC#を用いた実践的VRアプリ開発
第3回Gitとブランチ
神奈川工科大学情報学部
情報メディア学科 白井研究室
白井暁彦准教授
課題#2:C#プログラミング「CookieClicker」
Gitでのbranchを学ぶ
課題#3:ブランチを作ってプルリクエストをする
第3回やること
リポジトリを分岐させることができる.
一部仕様を変えて試したいけど,今の状態を壊したくないときに…
ブランチごとに変更履歴を記録するので,あるブランチを変更しても他のブランチには影響を及ぼさない.
=新しい機能を試作する際には,ブランチを生成しておくと便利.
ブランチ(branch)とは?
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 になっているはず)
☆これはローカルブランチなので何度でも試せます,やってみよう.
ローカルブランチを作って消す
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 (ここでファイルが復活する!)
☆ローカルブランチの変更もいつでも戻ることができるようになった
ブランチを使って瞬時に切替
ブランチを結合する
ブランチ側で実装した機能を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
ローカルブランチを作ったことをリモート(origin)に伝える
変更をmaster(origin)に対して突きつける
変更があるローカルブランチから(前項の続き)
> git push origin 1234567
ブラウザで確認
Your recently pushed branches…に表示されていることを確認
リモートリポジトリにプッシュする
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
ブラウザでGithubリポジトリへ
Pull requestをして課題2を提出
衝突がなければ自動merge可
先生(管理者)は課題を受け取ったら不要なブランチは削除
学生はそのブランチを持っていてもいいが,きりのいいところで削除したほうがいいと思う(長期管理ならfork)
先生側での確認・結合作業
あくまで後片付けは自分でやろうね(先生は管理できません!)
git checkout master (masterに切り替え)
git branch (現存するブランチのリストを見る)
git branch –D 1234567
git branch –D test2
git branch (現存するブランチのリストを見る→masterのみ)
git pull (最新をoriginから取得)
ローカルブランチの削除
前の状態に戻りたい
git reset –hard変更はすべて失われる
削除した/削除扱いされたファイルが原因でコミットできない
git add –A
何が起きているかわからないが色が変わっている
git status
知っておくといい解決形コマンド
課題#3:C#プログラミングでGitを使う
1. WPFで絵を描くサンプル「GraphicSave」を使用
2. 自分の学籍番号のクラスファイルを更新し,図形を描く.
3. (ビルドが通る状態で,ソースコードにコメントを書いて)Pull Request
4. (来週月曜)全部提出された状態で結合して結果を見る
課題#3:WPFプログラミングでGit