2015年7月21日火曜日

複数人でgitを利用する

複数人でgitを利用するためにはリポジトリを
メンバー全員で共有できる場所に置く必要があります。
共有場所に置かれたリポジトリをリモートリポジトリと呼びます。



リモートリポジトリをメンバーそれぞれがコピー(以下、クローン)して
それぞれがローカルリポジトリを持つ形になります。



そして、それぞれのメンバーが変更内容をリモートリポジトリに反映したり
リモートリポジトリから最新の変更をもらったりして作業を進めていく形になります





リモートリポジトリの置き場所についてですが
今ではgithubやbitbucketといったリモートリポジトリを簡単に管理できる
サービスがありますのでそちらを利用しましょう。
今回はgithubを利用してみます。

次の項目へ
目次へ

2015年7月20日月曜日

ローカルリポジトリを作る



  • 左上にある「新規/クローンを作成する」を選択
  • 「リポジトリを作成」タブを選択
  • 「保存先のパス」にバージョン管理したいフォルダを入力してください。
    フォルダから下の領域はすべて管理対象になります。
    試しに「D:\gittest」という領域を作ってそこを管理対象にしてみます
  • 選択すると名前欄に自動でフォルダの名前が入ります。
    今回はそのままにしますが、名前を変えたい場合は変更してください
  • 「作成」を選択します
  • これでローカルリポジトリが作成されました。
    隠しフォルダが見れる環境であればgittestフォルダに「.git」フォルダができています
    ここにgitの設定やログなどが格納されていきます。
    このフォルダを消すと全てのログや設定が消えてしまうのでここは触らないようにしましょう。



コミットする

ファイルの追加、変更、削除などの作業内容をまとめて記録して残すために
「コミット」という操作を行います。



  • 試しに先ほど作ったgittestフォルダにscenario.txtというファイルを追加して
    「僕はこれから旅に出る...」
    という内容を入力します。
  • すると、SourceTree上でファイルが追加されたことが通知され
    「作業ツリーのファイル」(以下、ワークツリー)に表示されます
  • そして、この追加をコミットに含めるためにscenario.txtを選択し
    「Indexにステージしたファイル」(以下、インデックス)にドラッグ&ドロップします
  • するとファイルがインデックスに移動します。
    ここに表示されているファイルがコミットの対象になります。
    また右側にコミットするファイルの内容が表示されます。
  • コミットするファイルを決めたら上部メニューから「コミット」を選択します
  • すると下部に入力欄が現れるので、どのような変更を行ったか表記します。
    このログは後から見返した時にどのような変更を行ったわかりやすいものを入力しましょう。
    入力が終わったら右下の「コミット」ボタンを選択します
  • 完了後、ブランチ欄に「master」の項目が追加されるので選択します。
  • 選択後、このような画面になり先ほどのファイル追加がコミットとして表示されます。
  • では、更にもう一度コミットをしてみます。
    scenario.txtの内容に次の一文を追加して保存します。
    「まずは森へ向かうことにした」
  • ファイルに変更が加えられると、変更されたがまだコミットされていないファイルがある。
    という表示が追加されます
  • 選択して先ほどと同じようにコミットに含めたいファイルをインデックスに移し
    コミットを選択します。
  • メッセージには「森編を追加」としてコミットしましょう
  • これで、変更履歴が以前と合わせて2つに増えました





変更を破棄する

ファイルに変更を加えたものの
やっぱり無かったことにしたい時に変更内容を破棄して
直前のコミットの状態に戻すことができます。



  • scenario.txtに以下の内容を追記し保存します
    「しかし、僕の冒険は終わりを迎えます」
  • 変更がワークツリーに追加されます
  • 変更を破棄したいファイルを選択し右クリックして
    表示されたメニューから「破棄」を選択します。
    破棄の確認が表示されるのでそのままOKを押しましょう
  • すると、変更内容が破棄されscenario.txtの中身は直前のコミットの状態に戻っています。
    また、変更されるファイルがなくなったことで「変更されていないコミットがあります」の表示
    もなくなりました。

このように気軽に変更を破棄して以前の状態に戻す。
といったことができるのもバージョン管理のメリットです。



昔のコミットに戻す

コミット単位で当時の状況に遡ることができます。




  • 遡りたいコミットを選択してダブルクリックします。
    すると、アラートが表示されるのでクリーンにチェックを入れてOKを押してください。
  • すると、フォルダの中身が最初のコミットの時と同じ状況になり
    「HEAD」という仮のブランチが作成されました。
    ※ブランチについては次の項目で説明します。
  • 移動が確認できたら


このようにコミット単位で好きな時の状況に遡れるので
昔のバージョンを元にして別のバージョンを作りたい。
といったことを手軽に行うことができます。

ブランチを作成する

ブランチとは「枝」を意味し、枝のように様々に枝分かれしてバージョン管理できる機能です。
アニメ、ゲーム風に言えば平行世界を作るような機能です。
試しにブランチを作成してみましょう。



  • 前の項目で、HEADというブランチが作られたかと思いますが
    このブランチは仮のものなので、ちゃんとしたブランチにするために
    上部メニューから「ブランチ」を選択します
  • 選択後、このようなウインドウが出るので新しいブランチ名を入力後
    「ブランチを作成」を選択します
    ブランチ名に2バイト文字(日本語とか)は使えないので注意してください
    今回は森編じゃなく川編にしてみたいので「river」というブランチ名にしてみます
  • すると、仮だったHEADブランチが正式にriverというブランチになりました。
  • この状態でscenario.txtに下記の一文を追加します。が、その前に
    テキストエディタでscenario.txtを開きっぱなしの場合は一度閉じて開きなおしてください。
    テキスト内容が「僕はこれから旅に出る...」のみになっていれば
    「まずは川へ向かうことにした」の一文を追加して保存ください。
  • すると、いつもどおり変更がワークツリーに追加されます。
    しかし、いつもと異なり樹形図が枝分かれしていると思います。
  • ブランチを作ったことにより、masterブランチとは違う流れができたことになります。
    とりあえずコミットメッセージを「川編を追加」にしてコミットをします。

今回はHEADブランチを作ってからriverブランチを作りましたが、いきなり好きなコミットから
ブランチを作ることもできます。その際は上部メニューの「ブランチ」を選択後
「作業コピーの親」ではなく「指定のコミット」を選択し、好きなコミットを選択してください


ブランチを切り替える

流れ通りに進めてきたらmasterとriver2つのブランチができていると思います。
この2つのブランチを切り替えてみましょう。



  • ブランチ欄の「master」をダブルクリックします。
  • すると、ブランチがmasterに切り替わります。
    選択中のブランチはアイコンにチェックマークが付き、太字で表示されます。
  • 切り替えると、フォルダの中身もmasterブランチの最新コミット
    「森編を追加」の時と同じ状態になっています。