インフラ

「Git・GitHub・GitLab」SVN信者が勉強がてらまとめてみた!

Gitについて

完全に個人的な興味から「Git・GitHub・GitLab」についてまとめてみました。
僕と同じように、

Gitってよく聞くけど、スゴイできる人が使うツールでしょ?

ワイ、SVN信者やけど、Gitに浮気したいぞ。

ってあなたも良かったら読んでいってください。

たわしむし
たわしむし
「Git」「GitHub」「GitLab」なんでこんなに「Git」があるんや?
ユウキ
ユウキ
どうも、ユウキです。
そう、僕もその点知らなかったので、調査してまとめてみました。

「Git」と「Git」のサービス

僕の「Git」イメージ

「Git」ずっと気になってたんです。

あの猫の影みたいなアイコン?

「Git」って、SVNみたいな開発チーム内でファイルを共有して管理する仕組みでしょ?

じゃあなんでSVNで満足せず、「Git」が出てきたわけなのか?

SVNもまだまだ現役だよね。。といいつつ調べてみたら面白い記事見つけた。

SVNを捨ててGitを使うべき5つの理由

なるほどね。

SVNとの一番の違いかつ、その機能はほしい!と思ったのは、

「ローカルでコミット」ができること

作業中のソースをコンパイルが通るか否かに関係なく(チームに迷惑かけることなく)履歴を残せるのはいいね。

SVNだとコンパイルが通るソースをコミットする前提として運用するから。

今日一日の変更分~

って軽い考えでコミットしてもいいわけよ。

実際の「Git」とは

ちょっと「Git」にわくわくしてきたので、「Git」とはを書いとく。

Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

Git is easy to learn and has a tiny footprint with lightning fast performance.

It outclasses SCM tools like Subversion, CVS, Perforce, and ClearCase with features like cheap local branching, convenient staging areas, and multiple workflows.

引用元:https://git-scm.com/

Googleさんに翻訳してもらうと

Gitは無料でオープンソースの分散バージョン管理システムであり、小規模なプロジェクトから非常に大規模なプロジェクトまで、あらゆる速度と効率で処理するように設計されています。

Gitは簡単に習得でき、フットプリントは小さく、超高速のパフォーマンスを備えています。

Subversion、CVS、Perforce、ClearCaseなどのSCMツールよりも優れており、安価なローカルブランチング、便利なステージングエリア、複数のワークフローなどの機能を備えています。

引用元:https://git-scm.com/

SVNとかと比べて優秀だよ。ってことやね。

特に、公式を読むと「分岐とマージ」が開発者にとってスゴイ魅力。

ローカルで実験的に履歴を残しつつ機能を作ったり、やっぱ使えないって削除しても、全部履歴残せるし(のちのち必要になったり!)。

役割や機能ごとにブランチを開発中に作成して便利に利用もできるってのは正直まだイメージわかないけど、使いこなしたら便利なのかな。

SVN信者としてはブランチってリリース用バージョン管理とかしかイメージわかないもんな。

この辺は実際に使わないと良さがわからないかも。

じゃあ「GitHub」はなんなの?

「Git」がファイルを管理するツールってことで、じゃあ「GitHub」はなんなのか。

「Git」の派生かなと思ってたけど、違った。

GitHubは世界最大級の開発者のためのコミュニティです。

引用元:https://github.co.jp/

この1文が全てを表してる。

まず、Gitを使ったサーバー側の機能をサービスとして提供してくれてる。(しかも利用者の規模関係なく無料プランあり!

次に、プロジェクト管理により「課題」を作成して問題を解決することができる。

それから、コードレビューを組み込みツールを使って簡単に行える。

ってとこまで今の僕には分かったところ。

他にもセキュリティは万全っぽいし、チーム管理もできて、APIも提供されてるからソーシャルアプリと連携が可能とかもろもろ。

すごいんよね。あとははやく実際に使ってみたいな。

あと「GitHub」ってあの「Microsoft」が運用してるんやで。買収したんやけど。

くるよ「Microsoft」の逆襲が。「GAFA」のネクストですからね。

「GitLab」もあるよね

あれ?「GitLab」もあるよね。これはなんなのか。

GitLabは、チームがソフトウェア開発で共同作業を行うためのオープンソースプロジェクトとして始まりました。

業界トップのペースで新機能を提供することにより、GitLabはソフトウェア開発と運用ライフサイクル全体に単一のアプリケーションを提供するようになりました。

GitLabは、アプリケーションの管理、計画、作成、検証、パッケージ化、リリース、構成、監視、保護に必要なすべてを提供します。

引用元:https://about.gitlab.com/what-is-gitlab/

「GitHub」と「GitLab」は基本的にやりたいことは同じなんでしょうね。

「GitHub」はクラウド上にサービスとして提供してる

「GitLab」はオンプレにサービスを作れるアプリを提供してる

って読んだけど。あってるかな。

ここ最近はどちらもオンプレでもクラウドでも利用できるっぽいことになってるんやろこれ。

好みの問題なんかなも少し調べてみると、

  • 「GitHub」は開発ソースがメインで、それにプロジェクト管理等のいろいろな機能があるサービス
  • 「GitLab」はプロジェクト管理がメインで、その1つに開発ソースをGitで管理できるサービス

ってことかな。

他にも「Git〇〇」ある?

他にもGit〇〇はあるか調べてみたけど、今はないね。

「GitHub」、「GitLab」と同じようなサービスを提供してるものだと「Bitbucket」があった。

「Bitbucket」も「Git」を使ったサービスを提供してる模様。

「GitHub」「GitLab」「Bitbucket」とも名の通る企業が使ってるので、Gitサービスを使うならほんと好みなんやな。

GitHubと連携できるDockerHubについては、こちらの記事で触れています。

dockerってなんだ
【Docker】コンテナ仮想化って知ってるの?知らないよね?あなたは『Docker』使えるの?ちなみに僕は使えません。Dockerを理解してない、使ってないエンジニアはオワコンいわれたので慌てて調べてみた。...

「Git」のクライアントツール

tortoisegit

コマンドライン

「Git」自体をそもそも僕はまだ使いこなしてない。

progateの「Git」コースを学習したくらいの知識。

【Git】学習コース

なれればコマンドでやってる人も多いのかな。

コマンド集をまとめたサイトリンク貼っときます。

【Git】基本コマンド

僕はできればSVNで使ってるクライアントソフト「TortoiseSVN」みたいなのがほしい。

TortoiseGit

良かった!「Git」にも「TortoiseGit」がありました。

絶対これ使うよ。亀がアイコンのやつ。

公式のリンク貼っときます。

Windows用Gitクライアント【TortoiseGit】

まとめ

まとめ
まとめ
  • 「Git」はファイルを管理するツール
  • 「GitHub」はGitを使ったプロジェクトを支援するサービス
  • 「GitLab」はGitHubと同じようなサービスだけど、好みで使い分ける

ってとこで今日はいいかな。

「Git」入門で読んでみたい本探しておいた。

それと、「GitHub」はホームページを作成できる「Pages」って機能もあるみたいやね。

HTML/CSS/JSは動くみたいなので、個人用のポートフォリオサイト用もに利用できそう。

ポートフォリオサイトでバックエンドも動かしたいならPaaSの「Heroku」を使う手もあるけど、これはまた別記事にします。

ユウキ
ユウキ
では、この辺でおわります。
ユウキでした。