###Git インストール
こちらからGitクライアントをインストールします。
※これでGitシステムと、LinuxコマンドをWindows環境でも利用可能になるターミナルソフトGit bashが利用できるようになります。
インストールが完了したらGit Bashを起動しておきましょう。
GitLabのアカウント作成
※バージョン管理システムGitを利用したリポジトリサービスは、Githubが有名です。しかし本稿では、無料で非公開のリポジトリを作れる&自前サーバーでもサービスをインストール可能などの利点から、GitLabを利用しています。
###Gitへのログイン・SSH認証キーの設定
Gitを利用し、それをクラウド上のサーバー(GitLab)へプッシュ(アップロード)するための設定です。
サーバーとの連携するためSSH通信という安全な通信方法を利用します。
※まめちしき: SSH通信の流れ(読み飛ばしてもいいです。)
【①ローカル上で秘密鍵と公開鍵を生成し、公開鍵をサーバー(GitLab)に登録】
【②サーバー上で公開鍵を元に、乱数生成&公開鍵と乱数から暗号生成&乱数からハッシュ値生成】
【③ローカル上で秘密鍵を復号したものと暗号で乱数を復号&乱数からハッシュ値を計算】
【④ハッシュ値をサーバーに渡す 既存のハッシュ値と渡されたハッシュ値を比較し一致したら認証】
$ git config --global user.name "Your Name" #ユーザ名設定
$ git config --global user.email your-email@example.com #メールアドレス設定
$ ssh-keygen -t rsa # SSH認証キー(公開鍵)の生成。
$ clip < ~/.ssh/id_rsa.pub # 公開鍵の中身をコピー。
- Git bash(ターミナル)で上記コマンドを実行。
- GitLabで作業
- トップ画面右上のメニューから「Settings」を選択。
- 画面左端「User Settings」メニュー→「SSH Keys」を選択。
- 「SSH認証キー登録」画面が表示されるので、「Key」にコピーした公開鍵をペースト。
- 「Title」は任意の文字列でOK。わかりやすく「SSH認証キー(公開鍵)」と同じ名前を設定してもいい。
- 「Add key」をクリック→SSH keysとして正常に登録した公開鍵が表示されていれば登録完了。
###リモートリポジトリの作成
- GitLabで作業
- ローカルからリモートのリポジトリへプッシュ(アップロード)するためのリポジトリをGitLab上で作成する。
- 「New Project」→「プロジェクト名」(わかりやすくアプリの名前と一緒にする)→「Create Project」で作成完了。
- 作成後、リポジトリのページに”git@gitlab.com:/AppTitle.git”というようなテキストボックスがあるので、これをコピー。
※後述のgit remote addでローカルからリモートへリポジトリをプッシュするために利用します。
###ローカルリポジトリの作成
$ git init Git管理したいディレクトリ(Railsアプリのルートディレクトリなど)に移動し、新しいリポジトリの初期化を行います。
$ git add -A プロジェクトのファイルをリポジトリに追加します。
$ git status ステージング(待機用リポジトリ)の確認。コミットを待つファイルが置かれる。安全のため、いきなりコミットはしない。
$ git commit -m "Initialize repository" ステージングにある変更をリポジトリに反映する。
###ローカルからリモートリポジトリへのプッシュ(アップロード)
$ git remote add origin git@gitlab.com:<username>/MyApp.git # MyAppのリポジトリのページがGitlabに作成される。
$ git push -u origin --all # または”--allの代わりにmasterでもOK”
###ブランチ作成
- ブランチを活用すると、”正常に動作する状態のリポジトリをコピーし、コピー先で変更を加え、コピー元に最終的な変更を反映させる”といったことができる。
ブランチ:リポジトリのコピー
masterブランチ: 全ブランチの親ブランチ。
トピックブランチ:短期間の作業用の一時的なブランチ。
$ git branch # ブランチ一覧を表示。現在使用中のブランチは*がつく。
$ git checkout -b ChildBranch # "-b ブランチ名"でブランチ作成
$ git checkout master # "checkout ブランチ名"で指定ブランチ移動。ここではmasterへ移動。
$ git merge ChildBranch # マージ(ブランチの変更をmasterに反映する。)
$ git branch -d ChildBranch # "-d ブランチ名"で指定ブランチの削除
※ブランチでミスをした場合は、-dの代わりに-Dを使うと、マージせずとも削除してくれる。
#####2回目以降のプッシュ
”git push -u origin master”を実行後は、origin masterを省略してプッシュできる。
$ git push
※区切りの良い所で変更が完了した場合、こまめにローカルからリモートのリポジトリへプッシュするのが望ましい。