Y研Gitlab運用マニュアル

#はじめに
Gitlab上で研究資財を管理することで，過去のプログラムをカスタマイズして使ったりすることが楽にできるようになります。
GitlabやGitが初めての人はググってください(概念が難しいのでここでは省きます)．
ここではGitlabの使い方の説明に留めるので周辺技術・使用に必要なものは調べて入れておくようにしてください．

gitlab構築までの流れは以下に書いておきました．
https://qiita.com/NJIMAMTO/items/4c4f481ee1d8a0140e6f
#Gitlab・Github・Gitの概念と相違点
Git自体は分散型バージョン管理システムです．
個人で使うなら
・このソースコード前のほうがよかったな
・データ紛失しちゃった
・etc...
な場面で活躍してくれるかもしれません．以下のGitlab・GithubはこのGitを使って管理します．

Gitの説明は以下を参照
[いまさらだけどGitを基本から分かりやすくまとめてみた](https://qiita.com/gold-kou/items/7f6a3b46e2781b0dd4a0)

で，うちはGitlab-CEで研究資財を管理します．同じようなツールにGithubがありますが
Githubはクラウドオンリーなのに対し，Gitlabはオンプレスミスでもいけることが最大の違いかなと思います．
研究データは基本外に出せないので，Gitlabを使うことになりました．

GitlabとGithubの説明は以下を参照
[GitLab って何?](https://qiita.com/masakura/items/29f8949379fa86dac22c)
[GitLabとは？GitHub買収で10倍のインポート数。使い方を解説](https://tech-camp.in/note/technology/44434/)

[いまさら聞けないGitとGitHubの違いって何？](https://www.i3design.jp/in-pocket/3111)

ただ，個人で普段使ってるソースコードを管理したり，家でも続きをやりたいみたいなことをするのにGithubを使うことは
問題ないと思います．必要に応じて各ツールを使い分けてください．

#Gitlabの初期設定
登録手順はSlackでお知らせしました通りなので省きます．ここでは登録した後の流れについて説明します．
まず，Gitlabと自分のPCを繋げるためにSSH接続の設定が必要です．

手順は以下を参考に
[GitLabにSSHで接続するまでの手順](https://qiita.com/kyamawaki/items/07fb3332cf3c2f47728a)

**重要**
キーを作成したあとのconfigファイルの書き方は以下に従いましょう．

```vim
Host my_gitlab #もしくはわかりやすい名前(変えた場合はgit cloneするときとかにホスト名を変更後にする必要あり)
        Port 2222
        HostName XXX.XXX.XXX.XXX #(NASのIPアドレス)
        User git
        TCPKeepAlive yes
        IdentitiesOnly yes
        IdentityFile ~/.ssh/gitlab_rsa
        AddKeysToAgent yes
```

#その１・ゼロからプロジェクトを作る
これから新しくソースコード等を作るってときの方法です．
![1.png](https://qiita-image-store.s3.amazonaws.com/0/204315/cf038b86-1585-54dd-31ea-f0150be2165e.png)
ログインするとこんな画面が出てきます．
Create a Projectをクリックすると次の画面が出てきます．
![2.png](https://qiita-image-store.s3.amazonaws.com/0/204315/4163e801-3b69-8363-16f1-b792bdbf3fb4.png)
必要な箇所を埋めてCreate Projectをクリックすると次の画面が出てきます．
![3.png](https://qiita-image-store.s3.amazonaws.com/0/204315/28d9f487-4ba6-8035-0450-b9dff3690e6b.png)
ひとまずこれでプロジェクト生成は完了です．
このあとGitlab上から新しくファイルを生成したり，Git cloneしたあとでPC上からファイルを追加したりします．

#その2・既存ファイルをGitリポジトリに追加する
すでにあるファイルを新しくGit・Gitlabで管理する方法です．PCにGitbashが導入してあるものとします．
管理したいファイルのあるディレクトリから次のコマンドを打ちます．

```console
git init
git remote add origin http://<nas_IP_address>:10080/<gitlab_user_name>/<project_name>.git
git add --all
git commit -m "コメント"
git push -u origin master
```
pushするとgitlabのユーザ名とパスワードが聞かれるので入力します．
成功すれば * [new branch]      master -> masterのような出力が出るはずです．

#あとは開発するだけ
あとはローカルリポジトリ上で作業をして適宜追加していくだけです．(masterブランチで作業するより作業ブランチを作って作業するほうがおすすめですが説明は省略)

だだ，gitlab上のリモートリポジトリをcloneしてくるときに気をつけることがあります．
SSHもしくはHTTPでローカルリポジトリを作る場合，GitlabのCloneボタンによって生成されたものをコピペすると以下のようになりますが，

```console
git clone git@localhost:<gitlab_user_name>/<project_name>.git
git clone http://localhost/NJIMAMTO/gittest.git
```
これだとlocalhostってどこ？とPCが迷うので(gitlab側を適切に設定しておくべきでした…ごめんなさい)

```console
git clone git@my_gitlab:<gitlab_user_name>/<project_name>.git
git clone http://<nas_IP_address>:10080/NJIMAMTO/gittest.git
```
にする必要があります．

#あとがき
超簡便にですが，Gitlabの使い方を説明しました．ただここの内容だけだとGitの使い方はわからないので，使い方を調べておくことは必須です．(自分もよく理解していないためという言い訳)
ホントならgit remote addをSSHでする方法も書きたかったのですが，エラーが出たため省略してます．頑張って実装してください(やり逃げ)．
あとSlack通知とかのあったらいいな系機能の実装も皆さんにおまかせします．

余談ですが，就活するときにgithubを判断材料にするとこもあるので，日頃から作っているものとかはGithubで公開しておくと幸せになれるかもしれません．