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"
xxxxxxxx@xxxxx.comにメールアドレスを入力します。メールアドレスは特に指定はありませんが、自分のfabcloudで使っているメールアドレスを入力するのがよいです。

Enter file in which to save the key:
SSHキーファイルを保存する場所を指定する。デフォルトは、WindowsもMacもユーザーフォルダ直下に.sshというフォルダを作成し、その中に保存する。特に問題ない限り、このまま何も入力せずに Enterキーを押す。

Enter passphrase (empty for no passphrase)
SSHキーに設定するパスワードを入力する。ここで入力したパスワードが、gitのコマンドを入力するときに聞かれるものなので、必ず覚えておくこと。

Enter same passphrase again;
上記と同じパスワードをもう一度入力する

The key fingerprint is:
問題なくSSHキーが生成されたら、fingerprintが表示され、元のプロンプトが表示される。

SSHキーは、.sshフォルダの中に格納される。.sshフォルダは、ホームディレクトリの直下(Windowの場合は、C:\Users/username/.ssh。Macの場合は/Users/username/.ssh)に置かれる。

id_rsa.pubの中身を表示する場合は

cat ~/.ssh/id_rsa.pub
と入力する。すると、画面上に公開鍵が表示されるので、それをコピーします。公開鍵の中身は、以下のように 最初に ssh-rsa で始まり、末尾に上記SSHキーを生成する際に入力したメールアドレスとなります。

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を実行するユーザーのメールアドレスを入力します
git config --global user.name "Yosuke Tsuchiya"

gitを実行するユーザーの名前を入力します

通常の作業#

以下の手順で、ローカルリポジトリ内の更新分をリモートリポジトリにアップロードする。この作業で、Webサイトを更新します。

ファイルをリポジトリに追加する

git add .

ローカルに持ってきているリポジトリを最新の状態にする

git pull

リポジトリに更新をコミット(追加)する。XXXXに更新内容を簡単に記載する(英語で)

git commit -m "XXXX"

リモートリポジトリへアップロードする

git push origin master

操作は以下の順番で行うことを、最低限覚えておくとよい

  1. git pull
  2. git add .
  3. git commit -m “XXX”
  4. git push

bash操作(CUIでフォルダ作成したり場所を移動したりする)#

今いるフォルダのファイルとフォルダのリストを表示する

ls -la

<フォルダ名> で指定したフォルダの中に移動する

cd <フォルダ名>

今いるフォルダの1つ上のフォルダへ移動する

cd ..

<フォルダ名> という名前のフォルダを作成する(make directoryの略)。

mkdir <フォルダ名>

<ファイル名> のファイルの中身を表示する。表示するファイルはテキストファイルでなければいけません。

cat <ファイル名>

注意点:ファイル名・フォルダ名は必ず半角英数文字にすること。