プログラミングいちねんせい

プログラミング初心者が優雅にもがく軌跡です

Gistのコードをブログに貼るときのテクニックとGit, GitHub, Gistの違いを簡単に説明します

Gistは便利です。私も利用しています。しかし、いざGistを利用しようとするとGitHubという言葉を目にすると思います。GitHubとの違いを検索すると今度はGitという言葉も出てきます。Git, GitHub, Gistとなにがなにやらわかりません。そこでGistのテクニックの紹介の前に3つの違いについて簡単に説明します。わからないなりに勉強がてら調べてみました。Gistのテクニックの紹介だけを知りたい方は以下のリンクをクリックしてください。

Gistの説明へ移動

Git, GitHub, Gistの違い

Gitについて

まずはGitについて説明します。Wikiで調べると以下のような説明でした。

Gitは、プログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システムである。(中略)Gitでは、各ユーザのワーキングディレクトリに、全履歴を含んだリポジトリの完全な複製が作られる。したがって、ネットワークにアクセスできないなどの理由で中心リポジトリにアクセスできない環境でも、履歴の調査や変更の記録といったほとんどの作業を行うことができる。これが「分散型」と呼ばれる理由である。

ここで引っかかる「リポジトリ」という言葉は仕様、データ、デザインなどを管理する貯蔵庫のようなものらしいです。Gitとは複数人で同じファイルを編集する場合に競合しないように自動で管理してくれるシステムのことです。例えばハリル監督について.textファイルの中身を複数人で編集していると考えてください。

f:id:javacurry:20170614155705p:plain

Aさんがハリル監督について編集しています。

f:id:javacurry:20170614155753p:plain

同時にBさんも編集していますがAさんとは内容が少し違います。こんなときにGitはAさんとBさんの編集内容をローカルで保存しながら、ほどよいタイミングでネットワークから差分ファイルを取り寄せたり、ローカルの編集内容をネットワークにアップロードします。特定のサーバーを介さずに編集者同士で差分をやり取りすることも可能らしいです。掘り下げるときりがないのでこの辺にしておきますが簡単にまとめると複数人での編集作業を効率良くサポートしてくれるシステムということですね。

GitHubについて

GitHub(ギットハブ)はソフトウェア開発プロジェクトのための共有ウェブサービスであり、Gitバージョン管理システムを使用する。 Ruby on RailsおよびErlangで記述されており、GitHub社によって保守されている。 主な開発者はChris Wanstrath、PJ Hyett、Tom Preston-Wernerである。 GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供している。 2009年のユーザー調査によると、GitHubは最もポピュラーなGitホスティングサイトとなった。

Gitを効率良く使うためのサービスです。コードの公開やSNSを利用できます。Gitの仕組みをを利用したいのであればGitHubが便利ということですね。

Gistについて

Gist(ギスト) - GitHub のサービス。ソースコード単体を投稿できる。

GitHubが提供するコードを共有するサービスでコードの部品を共有できるのが大きな特徴です。

Gistをブログで利用するときのテクニック

短いですが本題です。通常はGistのCopy to clipboardボタンを押してブログにペーストするか、はてなブログなら編集画面の右にある縦に並んだボタンのGist貼り付けボタンを押すことで貼り付けられるのですが、そのままのペーストすると全てのコードが一度に貼られてしまいます。しかし、いくつかあるコードの1つだけを貼り付けたいときには不便ですよね。そんなときはGistでCopy to clipboardボタンを押してペーストしたコードのうしろにfile=ファイル名と書き足すことで指定したファイルだけを貼り付けることができるんです。当たり前のことでしたら申し訳ないのですが、私は昨日知りました。

f:id:javacurry:20170614192733p:plain

まとめ

いかがでしたか?簡単ですが以上です。1人でコードを書くだけならばGit, GitHubの恩恵は少ないかもしれませんが知らないものを触ってみることで得るものもあると思います。私自身も調べるまでわからないことが多くて勉強になりました。GistにかんしてはSecretとPublicの違いやコードの種類を入力することで自動で色分けされるところまで書こうと考えていたのですが時間が足りないので今回はここまでにしておきます。