【Laravel】Windowsローカルの開発プログラムを途中からGitHubでソース管理し始める手順

PHP

XAMPPなどを使ってWindowsのローカル環境にLaravelの開発環境を整えると、比較的さくっとLaravelの開発を試す事が出来るようになります。

ただ、自分一人で開発していると、ついついソース管理などしないで進めてしまいがち。
過去の開発履歴は見れた方がよいし、動かなくなった時の切り戻しなども容易なので、バージョン管理はしておいた方がよいです。

前回、ローカルにXAMPP+Laravelで開発環境を構築した手順を記事にあげたので、ついでにGitHubとGUIツールであるTortoiseGitを使ってバージョン管理を新規に始める手順を自分の備忘の為にも残しておきます。

↓前回記事はこちら

Laravelのソースをサンプルで使ってはいるものの、この記事の殆どがLaravel特有の話では無いので、「Windows上のプログラムソースを新たにGitHubでバージョン管理し始めたい」というケース共通で使える流れかと思います。

前提

Windows上でプログラミングに使っているフォルダやファイルを、まだGitやSVNなどのバージョン管理システムを使っていない状態から、新規に管理できるようにするところまで進める。

大雑把な流れとしては以下。

・WindowsにGit自体や、Gitの操作をGUIで行えるクライアントツール(TortoiseGit)を導入
・リモートリポジトリにはGitHubというサービスを利用(SSH接続する)
・Windows上の既存プログラムソースを、ローカルにリポジトリ作成→リモートリポジトリ(GitHub)の順に登録

今回書いている手順なら、Gitやバージョン管理ソフトの詳細であったり、コマンド、用語(リポジトリとかSSHとか)の詳細な知識は無くても始められる。

ただ、バージョン管理ソフトとはなんぞや?という概念くらいは多少理解していた方が良いとは思う。

サクッと初心者が簡単に理解するには↓こちらが便利。
サル先生のGit入門

尚、ローカルのPCはWindows。
10 Proを使っているが、OSのバージョンは多分あまり関係ない。

GitHubに登録し、リモートリポジトリを作成

GitLabを利用したり、「とりあえずバージョン管理をしてみたい」くらいならローカルPCにリモートリポジトリ作ったりも出来るが、今回はリモートリポジトリとしてGitHubを使う。

https://github.co.jp/

↑こちらにアクセスして、「GitHubに登録する」ボタンから、アカウントを作成する。

尚、GitHubは使い方によって有料のプランもあるが、個人で使う分には無料で十分使える。

ユーザ名、メールアドレス、パスワードを入力して登録したらサインインし、さっそくGitHubにリモートリポジトリを作る。

プログラムソースのリポジトリ登録はローカル→リモートの順で行うが、枠として空のリモートリポジトリだけ先に作る必要がある。

「Repositories」の中の「Add」ボタンを押す。

以下のような画面になるので、Repository nameに適当な名前を付ける。
ここでは「laravel_todo_test」とした。
Descriptionは適当に入力しておく。

登録後のソースを一般に公開しても構わないならPublicを選択するが、ここでは公開するつもりがないのでPrivateに

WindowsにGitとGUIツール(TortoiseGit)を導入

リモートリポジトリの作成が完了したので、続いてローカルの環境を整える。

まずはGit自体とGit操作をするためのGUIツールであるTortoiseGitをインストールする。

Git for Windowsのインストール

https://gitforwindows.org/

こちらの「Download」からインストーラーをダウンロードし実行する。

幾つか選択項目などは出てくるが、基本的にデフォルトの選択のまま「Next」を押していけばよい。

ただし、個人的には以下の「Configuring the line ending conversions」の時だけ、一番下の「Checkout as-is, commit as-is」の選択に変えることを推奨

これは、チェックアウトやコミットした時に自動的に改行コードを変換するかどうか、という設定。
Windows環境とLinux環境で、よしなにやってくれて便利っぽく見えるが、トラブルの元になるので、一番下を選んで自動変換はしないようにする。

TortoiseGitのインストール

続いてTortoiseGitを導入する。

ちなみに、「Tortoise」とは日本語で亀(陸亀)の意味。
なのでエンジニアはそのままこのツールを「亀」と呼んだりする。

https://tortoisegit.org/download/

こちらにアクセスし、インストーラーをダウンロードする。

32-bitか64-bitかは自分の環境に合わせたものを選択。

Git for Windowsのインストール時同様、幾つか選択項目など出てくるが、こちらは基本的に全てデフォルトのままでOK

ここまで終わったら、Windows上の適当なフォルダの上で右クリックしてみる。

以下のように、「Git GUI Here」「Git Bash Here」や、「TortoiseGit」が表示されればOK

TortoiseGitを日本語化

特に英語のままで問題ないならこのままで次のステップに進んでいいが、TortoiseGitにはlanguage packもあるので日本語化しておく

先ほどのTortoiseGitのサイトに行くと、下部に「Language Packs」というメニューがある。

https://tortoisegit.org/download/

Setupからインストーラーをダウンロードして実行する。
(左が32-bit用、右が64-bit用。適切な方を選択)

「次へ」を押していけばインストールは完了する。

Windows上の適当な場所で右クリックし、「TortoiseGit」→「Settings」を選ぶ。

一番上(General)のメニュー内に、Languageという項目があるので、「日本語(日本)」を選択し「OK」を押す。

再度Windows上で適当に右クリックし、TortoiseGit内の各項目が日本語になっていればOK
(例えば「Settings」は「設定」に変わっている)

Gitのコマンドで確認

ここまででインストール周りは完了。

念のため、Gitがちゃんとインストールされているか、コマンドで確認しておく。

Git Bashを立ち上げる。
(場所が分からない場合は、Windowsのスタートメニュー内の「Git」内から探すか、Windows上で右クリックし、「Git Bash Here」をクリック)

以下のコマンドを叩いて、バージョン情報が表示されればOK。

git --version

Windows環境からSSH接続できるように準備

Gitを使う際、リモートリポジトリとの接続には幾つかのプロトコルが利用できる。

とりあえず接続できればよいなら「http(s)」接続でも良いが、セキュリティ上の事を考えて、SSH接続するのが無難。

ここではSSH接続を使うので、その設定を行う

鍵の設定はコマンドから行う。
コマンドに慣れていない人もいるかもしれないが、これさえ終われば、基本的にソースのコミットやプッシュなどはGUI(TortoiseGit)で出来るようになるので、少し我慢。

鍵の作成

先ほど使ったGit Bashというターミナルソフトを起動し、以下コマンドでホームディレクトリに移動。
(cd の後ろの記号は「チルダ」と呼ばれるもの)

cd ~

次のコマンドを打って、WindowsのUsersディレクトリ(フォルダ)下の、自分のユーザ名の場所が表示されればOK。

pwd

以降、本記事のコマンドは全て「Git Bash」で実行する。

以下コマンドを打って、公開鍵と秘密鍵を作成する。
※「メールアドレス」の部分は自分のメールアドレスを使う。

ssh-keygen -t rsa -C "メールアドレス"

途中、設定するパスフレーズを、(確認の為のリタイプ含めて)2回聞かれるので、適当なものを設定する。

完了すると、ホームディレクトリの下に「.ssh」というフォルダが自動的に作成され、以下の2ファイルが作られているはず。

・id_rsa:秘密鍵
・id_rsa.pub:公開鍵

(Windowsのエクスプローラから確認するか、以下コマンドで確認)

ls -la ~/.ssh/

GitHubに公開鍵を登録

作成した公開鍵を、GitHubに登録する。

まずは先ほど作った鍵情報の内、公開鍵の方(id_rsa.pub)をテキストエディタで開き、中身をコピーする。
もしくは、以下コマンドをGit Bash上で実行してもコピーできる。

clip < ~/.ssh/id_rsa.pub

続いて、リモートリポジトリの為に作成したGitHubにサインインし、以下画像の通り、ユーザメニュー内の「Settings」→「SSH and GPG keys」を選択。

すると、「New SSH Key」というボタンが表示されているのでクリック。

「Key」に、先ほどコピーした公開鍵情報を貼り付けて、「Add SSH Key」ボタンを押せば登録完了。
(「Title」は何か分かるようなものを登録しておく)

SSH接続確認

接続確認をする。

再びGit Bash上で以下コマンドを実行。

ssh -T git@github.com

実行結果内で最初ごちゃごちゃ書いてあるかもしれないが、最終的に以下のようなメッセージが出力されればOK。

Hi <ユーザ名>! You’ve successfully authenticated, but GitHub does not provide shell access.

もし「Warning: Permanently added ‘github.com,<IPアドレス>’ (RSA) to the list of known hosts.」のようなメッセージが出たら、「ssh-keygen -R <IPアドレス>」と打って、known_hostsファイルを更新してあげればよいらしい。
(ほっといても特に問題はない?)

これで、Windows(ローカル)からGitHubにSSH接続が出来るようになった。

ローカルのプログラムソースをローカル→リモートの順にリポジトリ登録

ようやく環境準備が整ったので、プログラムソースの管理を始める。

ローカルリポジトリの作成/コミット

ローカルにリポジトリを作成する。

バージョン管理したいソースが保存されているフォルダ(ここでは「c:¥xampp¥htdocs¥todotest)上で右クリックし、
「Git ここにリポジトリを作成」
をクリックする。

尚、ここでは作ったばかりのLaravelプロジェクトのソースを管理していこうと思う。
新規にLaravelプロジェクトをローカル環境に作成する方法は以下の記事を参照。

以下のようなダイアログが表示される。
「Bareを~」のチェックは外したままで「OK」をクリック。

フォルダアイコンの上に緑色のオーバーレイアイコンが表示されればOK。

ついでにこの時点でCommitしてしまう。
オーバレイのついたtodotestフォルダの上で右クリックすると、メニューに「Git コミット(C) -> “master”」がある。
これをクリック。

実際に業務で開発する際は、ブランチをきちんと分けて管理していくケースが多いはずだが、ここではmasterブランチを直接使っていく。

下部の「変更した項目」では、「すべて」(赤枠)を押して、すべてのソースにチェックを入れる。

尚、上部の「メッセージ」欄に後から見て何をしたのか分かるようなコメントを入力しておく。
(ここではfirts commitとしたが、開発現場では最初の行に機能番号を入れたり、RedmineやBacklogのチケット番号を入れるなどのルールがあったりする事が多い)

あとは「コミット」ボタンを押して、特にエラーが吐かれなければOK。

リモートリポジトリのURLをTortoiseGitから登録

既にGitHubにリモートリポジトリを作成済みなので、ブラウザからリポジトリのTOPにアクセスして確認する。

接続プロトコルがデフォルトで「HTTPS」となっているかもしれないが、今回はSSH接続にするので「SSH」を選んだ上でURLをコピーする。

todotestフォルダ上で右クリックし、「TortoiseGit」→「設定」を押す。
「Git」→「リモート」内の、URLの部分に、リモートリポジトリのURLを登録する必要がある。

入力したらOKを押す。
「新しく追加されたリモートからブランチをフェッチしますか?」と聞かれるので「はい」。

リモートリポジトリにプッシュ

todotestフォルダ上で右クリックし、「TortoiseGit」→「プッシュ」をクリック。

ダイアログが表示されるが、既にリモートリポジトリのURLは前の手順で登録済みなのでOKを押すだけ。
特にエラーが吐かれなければOK。

プッシュ(ローカルからリモートへの反映)したソースが、ちゃんと登録されているか、ブラウザからGitHubにアクセスし、laravel_todo_testのリポジトリを確認する。

最初に空で作ったリポジトリに、Laravelの各種ファイルが登録されている。

まとめ

業務で開発の現場に途中から入る場合にしても、趣味で何か始めるにしても、これまでリモートのリポジトリからソースをcloneしてくる事が多かった。

意外と個人でやったことない手順だったので試してみたが、SSH鍵登録のところでちょっと躓いた位で、とりあえずソース管理始めます!って状態に持っていくだけなら特別難しいことはないと思う。

ここからさらに、除外ファイルの設定だとか、ブランチどうするのかとかを決めていき、さらに細かいことやりたかったらTortoiseGitの細かい使い方やら、さらに痒いところに手が届く的なことしたければGitのコマンド覚えたりとか。。

突き詰め始めたら覚えることは色々あるけど、まぁ、一人でやっている分にはコミット/プッシュ/プルでなんとかなるでしょう。

コメント

タイトルとURLをコピーしました