ソースコードのバージョン管理していますか?

こんにちは!ぐちです。

SubversionとGit

以前こちらの記事でご紹介したように僕の個人プロジェクトのソースコード管理はSubversionを使っています。ただ仕事ではGitも使いますし複数人との共同プロジェクトではプライベートでもGitを使っています。そこでGitの簡単な説明を残しておきたいと思います。

Gitサービス

Codebreakという無料で非公開のリポジトリを作成できるサービスがありました。ありましたというのは2016年1月31日でサービスが終了するそうです。登録している人には案内メールが届いていると思うのですが非常に残念な結果です。僕もいくつか共同プライベートプロジェクトを置いていたので早急に代わりになるサービスを見つけないといけない状況になりました。

まぁそんなことはどうでもいいのですがGitのご紹介ですね。笑

Git

Gitにはリモートリポジトリとローカルリポジトリがあります。そしてワークツリーと呼ばれる実際に作業を行う場所とリポジトリにコミット(変更適用)するための準備をするインデックスという場所があります。

  • リモートリポジトリ
    • 複数人で共有しているネットワーク上に存在するリポジトリです。
  • ローカルリポジトリ
    • 作業者のローカル環境にあり作業者のみが操作するリポジトリです。
  • ワークツリー
    • 実際に作業をする場所です。
  • インデックス
    • ローカルリポジトリへ修正内容を適用する準備をする場所です。

では早速ですがGitの使い方をご紹介しますね。

プル

リモートリポジトリからローカルリポジトリへ他者の変更内容を取得する操作のことです。他の作業者がリモートリポジトリへ適用した内容を自分のローカルリポジトリに反映したい場合に行います。

プッシュ

ローカルリポジトリからリモートリポジトリへ自身の変更内容を反映する操作のことです。ローカルリポジトリに反映した自分の変更内容を他の作業者に共有したい場合に行います。

インデックス登録

ワークツリー内で変更した内容をローカルリポジトリへ登録するために準備をするインデックスへファイルを登録する操作のことです。

コミット

ワークツリー内で変更した内容をローカルリポジトリへ登録する操作のことです。コミットするためには対象のファイルがインデックスに登録されている必要があります。ワークツリーからロカールリポジトリへコミットすることはできません。

はじめは複雑で今何がどの状態にあるのかわかにくいと思いますが慣れてくると便利さに気づくと思います。

マージ・競合解決

正常動作といいますか特に問題なければ前述の操作で問題ないのですが他者がプッシュしたファイルと自分がプッシュしようとしているファイルの変更箇所が衝突した場合のマージや競合解決など様々な機能がありますがそこらへんは使いながら慣れていきましょう。笑