GitLab Tutorial (日本語)#
- Author : Yosuke Tsuchiya (Fablab Kamakura)
- Date created : 1/27/2021 (edited 1/27/2021)
日本語でのGitLabのチュートリアルです。
Fab Academyでの基本動作#
- ドキュメンテーションのブログサイトを構築
- 皆さんの各リポジトリに Static Site Generator mkdocs が用意されています
- git経由でmkdocsのソースファイル各種をアップロードすることで課題提出
- GitLab CI/CD にて Deployされることで、Fab Academyのサイトに公開されます
- GitLabで同時にバージョンコントロール・履歴管理
- 仕組みを理解していれば、過去の特定の時点での状態(コミット履歴)を復元することが可能
CUI vs GUI#
- CUI: Character User Interface
- 命令を文字で入力して結果を出力させる形式のインターフェイス
- 初期のコンピュータの入力/出力形式であり、現在も遠隔でPCやサーバーを操作、ソフトウェア開発などに用いる
- 現在のwindowsで言うところのコマンドプロンプトやPower Shell
- Macでいうところの「ターミナル」
- GUI: Graphical User Interface
- マウスでクリックしてファイルを開かせたりする、視覚的にコンピュータを操作するインターフェイス
- 世界初のGUI PCは1985のMacintosh
- 現代のPC・タブレット・スマートフォンは全てGUI
- Gitの操作は基本的にCUIでおこないます
- GUIで操作できるgitのツールもあります。
Git#
- もともとはLinuxカーネル開発者のリーナス・トーバルズがLinuxカーネルソースコードの開発状況を管理するたzめに開発した。
- Gitのシステムメンテナンスは、日本人の濱野純氏(Google 所属)によって行われている
- Gitのインストール
- Windows 基本は Git for Bashをインストールする。
- Mac やりかたはいくつかあるので、どれでもよい。
- プラットフォーム
- GitHub | GitLab
- Fab AcademyではGitLabを採用:FabCloud
SSH#
- 遠隔でコンピュータとの情報の送受信、遠隔コンピュータの操作を安全に(Secureに)行うための仕組み
- 公開鍵(Public Key)をGitLabサーバー側に設定し、秘密鍵(Private key)を自分のPCに持つ
- 公開鍵と秘密鍵のペアが一致している場合のみ、遠隔のコンピュータとのやりとりが可能となる
GitLab CI/CD#
- GitLabサーバー側で行う処理を記述する
- 処理内容を .gitlab-ci.ymlに記載する
- デフォルトではgit pushした際に masterブランチの内容でmkdocsのbuildを行い、GitLab Pageにデプロイする処理が記述されている
- master以外のブランチでの作業については発生しない(なので、mergeを承認してmasterに統合しなければ各ブランチの変更内容をホームページに反映することはできない
- 別のStatic Site Generator を使いたい場合は、.gitlab-ci.ymlの記載内容を、該当のStatic Site Generatorでbuildしてデプロイするように書き換える必要がある
以下のサンプルはgitlab.fabcloud.org での動作は未検証ですのでご注意ください。
gitlab-ci.ymlサンプル(VuePress)
image: node:latest
pages:
stage: deploy
before_script:
- 'yarn config set cache-folder .yarn'
- 'yarn install'
script:
- 'yarn docs:build'
- 'cp -pr docs/.vuepress/dist public'
artifacts:
paths:
- public
only:
- master
gitlab-ci.ymlサンプル(Pure HTML)
image: alpine:latest
pages:
stage: deploy
script:
- echo 'Nothing to do...'
artifacts:
paths:
- public
only:
- master
チートシート(これだけは覚えておく)#
SSH Keyの生成#
Windowsの場合はGit Bashで、Macの場合はターミナルを起動し、以下の手順で作成する。
ssh-keygen -t rsa -C "xxxxxxxx@xxxxx.com"
Enter file in which to save the key:
Enter passphrase (empty for no passphrase)
Enter same passphrase again;
The key fingerprint is:
SSHキーは、.sshフォルダの中に格納される。.sshフォルダは、ホームディレクトリの直下(Windowの場合は、C:\Users/username/.ssh。Macの場合は/Users/username/.ssh)に置かれる。
id_rsa.pubの中身を表示する場合は
cat ~/.ssh/id_rsa.pub
ssh-rsa ~~~~
(中略)
~~~ xxxxxxxx@xxxxx.com
また、id_rsa.pubの中身をクリップボードに直接コピーすることもできます。やり方は、Windows と Mac で異なるので、お使いのOSに合わせたやり方を実行してください。
Windows:
cat ~/.ssh/id_rsa.pub | clip
macOS:
pbcopy < ~/.ssh/fabcloud.rsa.pub
gitlab.fabcloud.orgにログインし、右上のユーザーアイコンをクリックして「settings」を選びます。
左側の「SSH Key」をクリックしてSSHキーの設定画面を開き、コピーした公開鍵の中身をフォームに貼り付けます。
Gitのチートシート#
初回のみ実行するもの#
リモートのリポジトリの中身を持ってくる(クローンする)場合は、以下のようにする。なお、持ってくる元のアドレス(git@~)は、リポジトリから情報を取得する。
git clone git@xxx.xxxxx
なお、git cloneは初回のみ行う。1度git cloneで持ってきたリポジトリを、もう一度持ってくる必要はない。
次に、gitを実行するユーザー名とメールアドレスを設定します。これも初回のみで、一度設定すればあとは必要ありません。ただし、これを設定しておかないとgit commitが失敗しますので設定するようにしてください(特にWindows で Git Bashを使っている場合)
git config --global user.email "aA000000@aoyama.jp"
git config --global user.name "Yosuke Tsuchiya"
gitを実行するユーザーの名前を入力します
通常の作業#
以下の手順で、ローカルリポジトリ内の更新分をリモートリポジトリにアップロードする。この作業で、Webサイトを更新します。
ファイルをリポジトリに追加する
git add .
ローカルに持ってきているリポジトリを最新の状態にする
git pull
リポジトリに更新をコミット(追加)する。XXXXに更新内容を簡単に記載する(英語で)
git commit -m "XXXX"
リモートリポジトリへアップロードする
git push origin master
操作は以下の順番で行うことを、最低限覚えておくとよい
- git pull
- git add .
- git commit -m “XXX”
- git push
bash操作(CUIでフォルダ作成したり場所を移動したりする)#
今いるフォルダのファイルとフォルダのリストを表示する
ls -la
<フォルダ名> で指定したフォルダの中に移動する
cd <フォルダ名>
今いるフォルダの1つ上のフォルダへ移動する
cd ..
<フォルダ名> という名前のフォルダを作成する(make directoryの略)。
mkdir <フォルダ名>
<ファイル名> のファイルの中身を表示する。表示するファイルはテキストファイルでなければいけません。
cat <ファイル名>
注意点:ファイル名・フォルダ名は必ず半角英数文字にすること。