1. Gitとは
このページでは開発にGitを利用するケースを想定し、Gitを利用する上で必要最低限の操作について纏めます。
Gitとは分散型のバージョン管理システムで、最も多い利用の仕方としてはプログラムのソースコードの管理に利用されています。
2. Gitの主な機能
Gitはバージョン管理システムと呼ばれる物で、以下の様な機能を備えています。
- ソースコードの複数のバージョンと変更履歴を保存し、ある時点のソースコードにロールバックできる。
- 変更内容を追跡できる
- 複数人で別々にファイルを操作しても整合性を保つための仕組みがある。
Gitではソースコードのマスターはローカルにあり、修正・テストで問題ないと判断したファイルをリモートリポジトリへ登録する形で利用します。
3. Gitの利用イメージ
Gitは大きく分けて以下の2つの方法で利用することが多いです。
- ソフトウェアを開発する為にGitリポジトリを作成する
- ソフトウェアを利用する為にGitリポジトリからソースコードを取得する
4. Gitの利用準備
Gitの利用を開始するのに必要な事は利用PCへのGitのインストールと、Gitリポジトリの作成、Gitユーザの初期設定です。
尚Gitリポジトリからソースコードを取得、Buildするだけであれば、Gitのインストールのみ行えば良いです。
4-1. Gitのインストール
Gitのインストールはコマンド若しくはOS向けに準備されたインストーラから実行可能です。
LinuxへのGitインストール
RedHat系OSの場合
$ sudo yum install git
Debian系OSの場合
$ sudo apt-get install git
WindowsへのGitインストール
以下のWebサイトからインストーラをダウンロード可能です。ダウンロードしてインストーラを実行しましょう。
4-2. Gitユーザの初期設定
以下のコマンドを実行し、Gitユーザのメールアドレスとユーザ名を設定する。
$ git config --global user.email "you@domain" $ git config --global user.name "hashihei"
4-3. Gitユーザ登録
Gitを利用するには先ず利用するリポジトリを準備する必要があります。GitHubやBitBucketでユーザ登録を実施ましょう。
5. Gitを利用した開発の流れ
ソフトウェアを開発する為にGitリポジトリを作成する方法と、ソフトウェアを利用する為にGitリポジトリからソースコードを取得する大まかな流れは以下の様になります。
5-1. Gitリポジトリを作成しソフトウェアを開発する場合
- リモートリポジトリの作成
- ローカルリポジトリの作成
- 新規にリポジトリを作成する
- 既存のリポジトリからディレクトリやファイルを取得し、開発を始める
- ローカルリポジトリのファイル編集
- ローカルファイルをローカルリポジトリに追加
- ローカルリポジトリのファイルを編集
- ローカルリポジトリのコミット
- リモートリポジトリの登録
- ローカルリポジトリの内容をリモートリポジトリへ反映
- デフォルトのリポジトリ/ブランチへローカルリポジトリの内容を反映
- origin/master以外のリポジトリ/ブランチへローカルリポジトリの内容を反映
5-2. Gitリポジトリからソースコードを入手しビルドする場合
- git cloneコマンドでソースコードをローカルリポジトリへ取得
- 取得したソースコードをビルド
6. Gitの操作
6-1. 新規にリポジトリを作成する
新規にリポジトリを作成し、開発を0から始めたい場合は、新規にリポジトリ作成を行う必要があります。
ここではGitHubで新規にリポジトリ作成を行う手順を記載します。
- GitHubへログイン
- GitHubのマークをクリックし、メインページへ移動する。
- “New”ボタンをクリックする。
- リポジトリ名を入力し、作成ボタンを押す。
- ローカルリポジトリでgitファイルを作成する(gitの初期化)。ローカルリポジトリを作成したいフォルダへ移動し、以下のコマンドを実行する。
$ cd [develop-directory-path] $ git init
6-2. 既存のリポジトリからディレクトリやファイルを取得する
ソースコードが格納されたディレクトリを設置したい場所に移動し、以下のコマンドを実行する。
$ git clone [Git URL]
GitのURLはGitHubであれば、リポジトリの”Clone or Download”のボタンから確認可能です。
リモートリポジトリからローカルリポジトリへファイルをコピーし、リポジトリを同期する
2通りのやり方があり、どちらでも良い。
$ git remote add origin https://github.com/[username]/[repository-name].git $ git pull origin master
//最新のリモートの更新履歴を取得しローカルに反映(全てのローカル追跡ブランチがアップデートされる) $ git fetch //ローカル追跡ブランチからローカルのローカルブランチへ内容を反映する $ git merge origin/master
6-3. ローカルファイルをローカルリポジトリに追加
README.mdファイルを作成し、ローカルリポジトリに登録する場合は以下のコマンドを実施する。
$ touch README.md $ git add README.md
カレントディレクトリ配下全て指定する場合は以下のコマンドを実施する。
$ git add .
カレントディレクトリ配下の.pyファイル全てを指定する場合は以下のコマンドを実施する。
$ git add *.py
gitの登録を解除(gitから削除)する場合は以下のコマンドを実施する。
$ git rm [filename]
6-4. ローカルリポジトリのコミット
以下のコマンドでコミットを行う。”-m”でコミットに対するコメントを残すことができる。
$ git commit -m "[comment]"
6-5. リモートリポジトリの登録
以下のコマンドでリモートリポジトリの登録を行う。originはデフォルトのリポジトリの場所(URL)の別名で、その後ろのGitHubのURLを指す様に設定しています。
$ git remote add origin https://github.com/[username]/[repository-name].git
bitbucketの場合は以下の様に指定する。
$ git remote add origin https://[username]@bitbucket.org/[username]/[repository-name].git
git remoteの設定は以下のコマンドで確認できる。
$ git remote -v
6-6. ローカルリポジトリの内容をリモートリポジトリへ反映
以下のコマンドでリモートリポジトリのmasterブランチ(メインのブランチ)へローカルリポジトリの内容を反映(Push)できる。
$ git push -u origin master
上記ではmasterへPushしていますが、通常は個別のブランチへ変更内容のPushを行い、問題が無いことが確認されたら、変更内容をoriginへmergeします。(個別ブランチの内容をmasterブランチへ反映)
ブランチ名を指定して、個別ブランチへ移動します。
$ git checkout [koeda]
ファイル内容を変更したらコミットした上でmasterブランチへ移動し、マージします。
$ git commit -m "make koeda" $ git checkout master $ git merge koeda
6-7. リモートリポジトリの内容をローカルリポジトリへ反映する
ローカルリポジトリが最新に保てていないときはpull することで
最新のファイルを取得できる。
$ git pull
6-8. リポジトリからファイルを削除
ファイルを削除しコミットすることでリポジトリからファイルを削除できる。
$ git rm [delete-file.py] $ git commit -m "[delete file]" $ git push -u origin [branch-name]
6-9. ブランチの作成とブランチの切り替え
通常開発する際にはmasterブランチで作業せず、ブランチを分岐させてファイルの編集を行う。ブランチを分岐(作成)させた上で作業を行う。
ブランチの作成とファイル追加を行った上でmasterブランチへ反映させるまでの流れは以下となる。
ブランチの作成
$ git branch [branch-name]
ブランチの切り替えと現在選択しているブランチの確認
//ブランチの切り替え $ git checkout [branch-name] //現在のブランチの確認 $ git branch
作成したブランチでファイルを作成、登録する
$ echo "add-file." >> [add-file-name] $ git add [add-file-name] $ git commit -m "[add file]" $ git push -u origin [branch-name]
作成したブランチをmasterへ反映する
$ git checkout master $ git branch $ git merge [branch-name] $ git commit -m "[merge-branch]" $ git push -u origin [branch-name]
7. 日本語マニュアル
公式日本語マニュアルは以下から確認できます。