はじめに
業務でgit(gitlab)を使用しているが、ソースコードのバージョンを管理するツール、g以下コマンドぐらいしかしらないので調査と基本的な使い方を学び強くなる。
git pull
git push
gitとは
ファイルのバージョン管理を容易にするシステム
バージョン管理システムには以下2種類ある。
- 集中型バージョン管理システム
- 分散型バージョン管理システム
集中型バージョン管理システム
常にオンラインで最新版のファイルを複数人でバージョン管理していく仕組み
常に最新版のみを作業するので、シンプルにバージョン管理できるがオンライン環境での作業が必要
例)Subversion
分散型バージョン管理システム
gitはこれに該当する、クラウド上と自分のPC内に共有するファイルの保存先を複数持てる
メリット
オンライン、オフラインでも複数人が並行して作業できる
デメリット
複数人が並行して作業するため、それぞれの作業を
gitとgithub
gitによって管理されるフォルダのことをリポジトリ
という
gitを使用し、効率よく作業するには、リモートリポジトリとローカルリポジトリを上手く連携させる必要がある。
そのために用意されているのがリモートリポジトリを提供するサービスgithub
つまり、githubはgitをオンライン管理するwebサービス
githubとgitlab
gitlabはgithubを参考に開発されたため、同様な機能を備えている。
違い | gitlab | github |
---|---|---|
サービス | OSSライセンス | 商用ライセンス |
料金 | オープンソースなので基本無料 | 公開リポジトリは無料※ |
特徴 | インストールするためのサーバ、運用費用がかかる | クラウド上で運営されるので、サーバ構築は不要 |
※プライベートリポジトリは課金
つまり、サービスや料金は変わらないので、ライセンスや自社でカスタマイズしやすいかどうかの違い。
gitlab
gitlabには以下2種がある
- GitLab CE(Community Edition)
- オープンソースソフトウェア
- GitLab EE(Enterprise Edition)
- CE版を元に開発し、CEへの機能追加を有料で提供
以降は、gitlab CE版の主な機能について記載する
- 総合的なコード管理
- マージリクエストによる、コードレビュー
- プロジェクトやソースコードに対する課題管理
総合的なコード管理
複数名で開発する場合、各々修正したソースコードは全てgitを利用してバージョン管理されるので、異なる作業をしている人でも簡単に現行の作業をチェックできる
例えば、ソースコードの閲覧、変更履歴の確認、リポジトリのアクセス管理、ブランチの閲覧などが可能
つまり、gitlabを使うと簡単にコード間の管理ができる
マージリクエストによる、コードレビュー
編集したファイルをコミットする際にgitlab CI/CD機能により、マージリクエスト毎に自動的にビルドとテストを実行できる
コミット:修正したファイルを保存すること
つまり、共同作業の変更点を確認しながらマージ作業ができる
プロジェクトやソースコードに対する課題管理
バグチケットを発行して課題管理できる。
Issue Board機能により、開発途中、運用中に発生した課題を共有できる
gitlabのメリット
- プロジェクトのコンテンツ共有ができる
- オンプレ上(自社内)でセキュリティの管理ができる
- Gitlabの機能をGit管理下で使える