1. はじめに
この記事は自社内で新卒にバージョン管理システムの使い方を覚えてもらうために作った資料です。
うちの会社は技術者派遣業を主とするため、開発環境は現場によってバラバラです。
組込み系の現場を想定しているため、もしかしたらバージョン管理をしていない現場に当たる可能性もある。。。
だからこそ、次の要件を満たすために資料を作りました。
- 研修中にバージョン管理を覚えてほしい
- 現場でも自分で環境を作れるようになってほしい
- 研修中の成果物を他者と簡単に共有できるようにしてほしい
1.1. 準備
共有フォルダ(ファイルサーバでも可)を用意しておくこと
1.2. バージョン管理は大事!
これまでに次のようなことを考えたことはないですか?
-
どこを変更したか確認したい
例)過去の修正でバグが混入した!どこで変更したっけ!? -
過去のコードに戻したい
例)昨日まで動いてたのに急に動かなくなった! -
他の人が変更したコードをリアルタイムに取り込みたい
例)今すぐAさんのコードと結合して動作確認したい!
バージョン管理システムなら全部解決します!
ただし、次の3つのルールを守る必要はあります。
1機能1コミット
毎日1コミット
コミットするときはコンパイルできるもの
バージョン管理の本質は履歴を記録・管理することにあります。
そして、記録した履歴を簡単に戻したり、結合したりできることが求められます。
1.3. バージョン管理システムの管理方法
ネットワークで接続可能なマシンにデータを集約します。
そこからコードや履歴を含む情報をダウンロードしたり、アップロードして利用します。
1.4. Gitって?
Git(「ギット」と呼びます)はバージョン管理システムの1つです。
他にもCVS,Subversion(SVN),VSS, Mercurialなど様々な種類があります。
現在、ソフトウェア開発においてはGitが主流となってきています。
現場によってはSVNが運用されていることも多いです。
1.5. TortoiseGitって?
Git単体はコマンド操作だけしか対応していません。
GUI操作で感覚的に使えるようにしたクライアントソフトが多数存在します。
TortoiseGitもその一つです。
他にもSource Tree, Git Kraken, Smart Git, Git Eyeなど無償・有償の様々な種類があります。
今回はTortoiseSVNの兄弟ツールといえるTortoiseGitを利用します。
組込み系の現場ではSVNが主流だったりするので、Tortoiseシリーズを選択しました。
2. 環境構築
2.1. 各ツールのバージョン
名前 | バージョン | 備考 |
---|---|---|
Windows 10 Pro | 1709 | 64bit |
Git | v2.16.2 | 64bit |
TortoiseGit | v2.6.0 | 64bit |
2.1. Gitの導入
ダウンロード
次のURLへアクセスし、[Download]ボタンをクリック
https://git-scm.com/
下の画面に変わると同時にダウンロードが開始
Git-2.16.2-64-bit.exeがダウンロードされたことを確認する
インストール
ダウンロードしたインストーラ(Git-2.16.2-64-bit.exe)を実行
[View Release Notes]のチェックをはずし、[Finish]をクリック
チェックを外し忘れた場合はリリースノートを表示しようとしますが、無視してよいです。
2.2. TortoiseGitの導入
ダウンロード
次のURLへアクセス
https://tortoisegit.org/
[for 64-bit Windows]をクリック
TortoiseGit-2.6.0.0-64bit.msiがダウンロードできたことを確認する
画面を下へスクロールし、日本語パックの64bit版をダウンロード
TortoiseGit-LanguagePack-2.6.0.0-64bit-ja.msiがダウンロードできたことを確認する
本体をインストール
インストーラ(TortoiseGit-2.6.0.0-64bit.msi)を実行
[Run first start wizard]のチェックを外し、[Finish]をクリック
チェックを外し忘れた場合、初期設定ウィザードが立ち上がるが、無視して一度閉じる
日本語パックをインストール
日本語パック(TortoiseGit-LanguagePack-2.6.0.0-64bit-ja.msi)をインストールする
[Configure TortoiseGit to use this language]にチェックを入れる
デスクトップや適当なフォルダで右クリックし、コンテキストメニューにGit bashとTortoiseGitが表示されていることを確認する
設定からユーザ名とメールアドレスを設定する
3. 運用・使い方
3.2. リポジトリの準備
リポジトリとは履歴とファイルの情報を持った場所
リポジトリには大きく2種類あり、作業用と共有用がある
リモートリポジトリを準備
アップロード先、共有用
情報のアップロードを受け付ける
ここでは直接ファイルを変更できない
履歴の変更は可能
リポジトリの作成 "git init --bare"
「XXXX.git」というフォルダを作成しておく
対象のフォルダを選択したまま、右クリックでコンテキストメニューを開き、
[Git ここにリポジトリを作成]を実行
[Bareを作成(作業ディレクトリーを作りません)]にチェックを入れ、[OK]ボタンをクリック
次のようなフォルダ階層となることを確認
sample.git
├─hooks
├─info
├─objects
│ ├─info
│ └─pack
└─refs
├─heads
└─tags
ローカルリポジトリを準備
作業用のフォルダ
ファイルを変更し、履歴を追加していく
クローン(複製) "git clone"
リモートリポジトリの情報をすべて新規でダウンロードし、ローカルリポジトリを作ること
基本的に初回のみ行う
3.2. 基本的な使い方
追加 "git add"
履歴の管理対象にファイルを追加
ファイルを選択し、右クリックから追加を選択
コミット "git commit"
追加・削除・編集などのファイルの変更を履歴として登録すること
プッシュ "git push"
コミット履歴をリモートリポジトリにアップロードすること
プル "git pull"
リモートリポジトリの情報をローカルリポジトリにダウンロードすること
フェッチ "git fetch"
リモートリポジトリの履歴情報だけをローカルリポジトリにダウンロードすること
3.4. 簡単Git運用フロー
リモートリポジトリがある場合の初回操作
- クローン
- ファイル編集
- コミット
- プッシュ
通常のファイル修正作業
- プル
- ファイル編集
- コミット
- プッシュ