Upload
lee-choong-geun
View
253
Download
0
Embed Size (px)
Citation preview
PBLのためのはじめてのGit
李充根
2014/4/15 はじめてのGit 1
今日の流れ
1. Gitとは?
2. ひとりでGitをつかってみる
3. Gitホスティングサービスをつかってみる
1. リモートリポジトリをつかってみる
2. ふたりでGitをつかってみる
4. べんりなつかいかた
5. より実践的に
2014/4/15 はじめてのGit 2
こんな経験
• ソースを戻したい
2014/4/15 はじめてのGit 3
先週
今週
こんな経験
• どれが最新かわからない
• 間違って上書きした
2014/4/15 はじめてのGit 4
ないですか?
1. Gitとは?
• 分散型バージョン管理システム(VCS)の一つ
– 非分散型(集中型)• CVS
• Subversion
– 分散型• Git
• Mercurial
• 何が違う?そもそもバージョン管理システムって?
2014/4/15 はじめてのGit 5
研究室での開発というと
• コピペ駆動開発
• USBメモリ管理システム
• NASバージョン管理システム
……
ダメ!絶対!!
正しい開発手法を!
2014/4/15 はじめてのGit 6
バージョン管理システム
• 読んで字のごとくファイルのバージョンを管理するシステム
2014/4/15 はじめてのGit 7
変更 変更
最新
一個古い
二個古い
最新 最新
一個古い
集中型と分散型
2014/4/15 はじめてのGit 8
分散型集中型
その他色々形がある
話を戻してGitとは?
• 分散型バージョン管理システム(VCS)の一つ
– 非分散型(集中型)• CVS
• Subversion
– 分散型• Git
• Mercurial
• とりあえずいくつか種類があることだけでも
2014/4/15 はじめてのGit 9
今日は説明しない(社畜になれば使うだろう)
: 履歴は全部サーバで管理
: 個々の環境で管理
Gitの特徴
• ローカルリポジトリとリモートリポジトリ
– リモートに繋がなくてもコミットできる!
– 幅広い運用!
– 自由度が高い!
• と言われてもわからないと思うので
– とりあえずすげーやつ
– 最近のはやり
• ぐらいの認識でいいです
2014/4/15 はじめてのGit 10
まとめ
• とりあえず自動で履歴を残してくれるすごいツール
• プロジェクト開発で普通に使う
• 種類はいくつかあるけどGitがはやってる
• 研究室でもソースの管理しよう
2014/4/15 はじめてのGit 11
2. ひとりでGitをつかってみる
• 導入
– Windowsの場合• http://git-scm.com/
• 個々で実行ファイルをDLしてインストール
– Linuxの場合• yumやapt-getなどで
• ソースからmake
– Macの場合• わからない(自分で調べて)
• 多分MacPortsとかHomeBlewとか
2014/4/15 はじめてのGit 12
基本的な使い方
• 現在いるディレクトリに新しいリポジトリを作る
– git init
• gitの管理領域にファイルを追加・更新する
– git add 【ファイル名】
• リポジトリに更新をコミットする
– git commit –m “【メッセージ】”
2014/4/15 はじめてのGit 13
実際につかってみよう
• ホームディレクトリに新しいディレクトリ「moshiken」を追加する
• 新しいローカルリポジトリを作成する
• ディレクトリの中に入って「sample.txt」を作成
• gitに追加してコミットしてみる
• ファイルに文字を追加して再度コミットしてみる
2014/4/15 はじめてのGit 14
ブランチをつかってみる
• ブランチとは
– Gitで別々の履歴を管理できる機能
– 例えばひとつのソースコードに対して、あるアルゴリズムを試したいけど本運用するかわからない時、ブランチを分けてソースを追加し、検証が終わった段階で統合することができる
2014/4/15 はじめてのGit 15
master(デフォルトのブランチ)
new-branch
git branch 【ブランチ名】 or git checkout –b 【ブランチ名】
ブランチをつかってみよう
• さっき作成したリポジトリでブランチを作って切り替える
• 新しいブランチでコミットする
• もう一度masterブランチに戻って変更した修正がないことを確認する
2014/4/15 はじめてのGit 16
3. Gitホスティングサービスをつかってみる
• Gitをもっと便利に使うためにホスティングサービスが有る
– リモートのリポジトリを共有できる
– 他の人と連携して使うことができる
• 有名なものに下記のものがある
– GitHub:Gitの火付け役
– Bitbucket:無料でプライベートリポジトリ使える
– GitBreak:日本製
2014/4/15 はじめてのGit 17
3.1. リモートリポジトリをつかってみる
• 基本は最初の演習と同じ
• コミットした後に、今度はリモートに上げる
• リモートを操作するコマンドは次の通り
• ローカルのリポジトリをリモートに送る
– git push origin master
• リモートのリポジトリをローカルに反映させる
– git fetch
– git merge origin/master
2014/4/15 はじめてのGit 18
= git pull
実際にリモートをつかってみる
• GitHubに登録する
• 新しいリポジトリを作成する
• 最初の演習で作ったリポジトリをpushしてみる
• ローカルのファイルを更新して再度pushしてみる
2014/4/15 はじめてのGit 19
4. ふたりでGitをつかってみる
• お互いのリポジトリをpush-pullしあってソースコードを共有することができる
• せっかくGitHubに登録したので直接ローカル同士ではなくリモートを介して共有してみよう
• 基本は今までと同じ
• ただし、同じ場所を変更した時競合が起こりえる
2014/4/15 はじめてのGit 20
二人で開発してみる
• ペアを組んでください
• まず片方がGitHubにリポジトリを作る
• ローカルにもリポジトリを作って、リモートにpushする
• もう片方はリモートからcloneする
– git clone 【URL】
• 片方がソースを編集してpushする
• もう片方はpullしてみて編集が反映されるか確認する
• 二人で同じ場所を編集して、競合が起こるとどうなるか確認する
2014/4/15 はじめてのGit 21
便利な使い方
• Gitの状態を確認したい
– git status
• 今までのコミットログを見たい
– git log
• コマンドじゃ使いにくい
– SourceTree
– TourtoisGit
• 他の人がpushする前に確認したい
– pull request(今日は説明しない)
2014/4/15 はじめてのGit 22
より実践的に
• Gitは色々と自由がきく分、修得するまでに時間がかかる
• 人によって使い方、構成等は違う
– git flow,github flowなど
• まずは今日覚えたことからつかって慣れていこう
• GitHub等便利なサービスがあるからそういったものは積極的に利用しよう
• わからないことは恐れずに聞いて
2014/4/15 はじめてのGit 23
その他
• 本当はもっと色々教えたかったけど多分これ以上はパンクするだろうから残りはゆっくり復習しながら覚えてね
• 研究室内Gitサーバ建てたいとかやりたいことあったら気軽に相談してね
• もっと色々やりたいけどナンカ要望ある?
– TDD(テスト駆動開発)
– アジャイル(XP、スクラム)
– 継続的インテグレーション(Jenkins)
Let’s Try!!
2014/4/15 はじめてのGit 24