侍ブログ編集部の兵政和です!最近よく聞くようになった「Git」。Gitはエンジニアだけではなく、WebデザイナーやWebライターなど、今やITに携わるほとんどの方の必須知識となりました。そんなGitですがわかってるようでいまいちピンときていない方も多いのではないでしょうか?なので今回は「Gitとはなんなのか?」を、専門用語をなるべく用いずシンプルに解説していきます。これを読めば、今まで何を見ても理解できなかったGitの概要がすっきりわかるはずです。Git関連の記事そもそもGitとはまずは、Wikipediaでの説明をみてみましょう。gitは、プログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システムである。Linuxカーネルのソースコード管理に用いるためにリーナス・トーバルズによって開発され、それ以降ほかの多くのプロジェクトで採用されている。gitでは、各ユーザのワーキングディレクトリに、全履歴を含んだリポジトリの完全な複製が作られる。したがって、ネットワークにアクセスできないなどの理由で中心リポジトリにアクセスできない環境でも、履歴の調査や変更の記録といったほとんどの作業を行うことができる。これが「分散型」と呼ばれる理由である。wikiちょっと小難しく聞こえますよね。大丈夫です、まずはなんとなくでも触れていきましょう。この解説をかみくだくと、以下のように説明できます。リーナスさんという人が作ったオフラインでもプログラムの編集などができるその変更履歴も管理できるGitが生まれた理由Gitとはなんなのか?を理解していく上では「なぜ生まれたのか?」を知っておくと理解が早いです。世の中になにか新しいものやサービスが生まれる理由は、困りごとを解決するためです。Gitに関しても、その困りごとや解決する方法を知ることで、使い方のイメージがわきやすくなります。ファイル編集で困ってた例えば、みなさんはあるファイルを編集前に戻す時にどうしますか?一番簡単なのは、前もって編集前のファイルをコピーしておく方法です。この方法の場合、ファイル名に編集した日付を追加しておくことが多いですよね?しかし、ファイルを編集するごとに自分でファイルをコピーするというのは大変で、間違いも起こしやすくなります。適当に名前を付けてしまった場合、どのファイルが最新のものか区別できない時があると思います。チーム作業でも困ってたチームで共有して作業しているファイルでは、編集者の名前を入れておくこともあります。どのような変更を行ったか簡単にはわかりませんよね?また、チームで共有しているファイルの場合では、二人で同時に編集してしまったために、先に編集した人の変更内容が消えてしまったという経験はないでしょうか。このような問題を解決するために作られたのが、Gitという仕組みなんですね。Gitの特徴これまでの管理システムでは、サーバー上にある1つのフォルダを、利用者が共同で使っていました。これまでの管理システムなので利用者が増えると、上で説明しているような問題が起こってしまい、整合性を維持することが大変だったんですね。Gitの最大の特徴は、「分散型」と言われるとおり、自分のパソコンに全ての変更履歴を含む完全なフォルダの複製を作成できるということです。これはつまり、元フォルダのコピー(ローカルリポジトリ)を手元に置いておけて、自由に編集できるということです。Gitでの管理イメージGitでできること画像:shutterstockこれまでの説明をまとめて、Gitでなにができるのか、なにが嬉しいのかをご紹介していきます。ファイルの変更履歴が管理できるGitを使えば、「◯月◯日に、◯◯さんが◯◯を変更した」という変更履歴を管理できるので、ファイル名をいちいち変更して保存しておく必要がなくなります。ファイルが増えないので、自分のフォルダがすっきりしますね。過去のファイルに戻せるファイルを編集していて、「あ、やっぱり変更前に戻したいな」って時ありますよね。Gitを使えば、変更履歴をそれぞれ管理しているので、いつでも任意の時点のファイルに戻せます。なんでも管理できるGitで管理できるのは、プログラムのソースコードだけではありません。詳細な違いまでは管理できませんが、Excelファイルや、画像など、あらゆるファイルを管理できます。チームで共有できるネット環境を使えば、同じチーム内の仲間とファイルの変更履歴などが共有できます。複数人で仕事をやる時に起こりがちな問題なども回避することができます。画像:Shutterstockプログラミングここまで説明してきたとおり、プログラミングでソースコードを書くときに利用されます。先述したようにバージョン管理がしやすく、チームでプログラミングを行う場合にGitはよく使われています。WebデザインWebデザイナーの方も利用するようになってきました。Gitは、テキストデータの変更履歴を管理することが得意です。Webデザイナーが作成するHTMLやCSSもテキストデータですから、GitとWebデザインも相性が良いことが分かりますね。実はWebライターも利用が始まっています。遠隔地で原稿を書くWebライターが、後述するGitHubやBitbucketを活用して、原稿を納品していくケースがあります。Webライターが取り扱うデータは、テキストデータが主ですから、やはりGitと相性が良いというわけです。OSで使用するためのインストーラーも用意されていますので、好きな環境で利用できます。ここまで触れてきませんでしたが、GitはCUIツール(コマンドラインツール)です。CUIというのは、黒い背景の画面に、キーボードでコマンドを入力して操作するインターフェースのことです。いった操作に慣れた方には使いやすいのかもしれませんが、Windowsなどでメニューをクリックして......といった操作に慣れていると使いこなすのは難しいですね。Bashというツールもインストールされます。Bashは、Windowsのコマンドプロンプトと同じようなツールで、Linuxでよく使用されているlsコマンドなどを利用できます。正確にはGitの機能を使えるアプリというわけではなく、Gitを活用するシェルスクリプトを、Windowsでも使えるようにするためのツールと考えると良いでしょう。2019年4月7日やっぱり、CUIから離れられないのか...と思ったあなたには次のツールをオススメします!SourceTreeGitの機能を使えるアプリケーション(GUIツール)です。CUIで操作する必要がほとんどなくなるスーパーツールです。SourceTreeは、以下の記事でも紹介しています。https://www.git-tower.com/features/easy/Gitを直感的に扱うことができるパワフルなGUIツールです。多機能なぶん有料ですが、30日間のトライアル版もあります。気になった方はまずはお試ししてみましょう。https://git-fork.com/こちらもGUIツールです。Mac版のみでしたが、Windowsにも対応されました。無償で利用することができます(2019年11月現在)。GitとGitHubの違いGitとGitHubは同じものではありません。GitHubの使いかたを紹介する上で、Gitの使い方も紹介しなければいけなくなりますから、いろいろな記事を読んで混乱してしまうのもわかります。みんな一度は通る道です。ここで違いをしっかり把握しておきましょう。GitHubGitHubは、このGitの仕組みを利用して、世界中の人たちがプログラムコードやデザインデータなどを保存できるウェブサービスです。運営しているのはGitHub社(日本法人はギットハブ・ジャパン合同会社)です。GitHubは以下の記事でも紹介していますので、ぜひご覧ください。初心者におすすめ!実践できるGitHub入門書3選Bitbucket画像:ShutterstockBitbucketは、GitHubに似たウェブサービスで、Atlassian社(日本法人はアトラシアン株式会社)が運営しています。BitbucketはGitHubと比べてシンプルに抑えてあるので、GitHubはゴチャゴチャして苦手という方にはBitbucketをオススメします。Gitの使い方を学ぶ方法ここまで「Gitとは何か」について解説してきましたが、ここからはGitの使い方を学ぶ方法について紹介します。Gitは初学者にとって独特な概念なので、初めからしっかり把握することが難しいです。実務作業では欠かせない知識の一つです。効率的に学習できる方法をおすすめしますね。学習教材サイトを利用する侍エンジニア塾の教材サイトでGitを学ぶことができます。20時間を目安にGit・GitHubの仕組みや使い方を習得可能です。実際の開発現場で乗用されるコマンドや一連の流れを知ることができるので、ここで一通り学習してしまいましょう。実務に近い環境で学習するには?Gitを活用し、さらに効率よくプログラミングの学習をするなら「プログラミングスクール」を利用するのがオススメです。プログラミング学習は無数のエラーとの戦いです。基礎の基礎はこなしたけど、いざ発展的なことをやるとエラーが連発して心が折れたり......と、独学の挫折率は9割といわれています。スクールで経験者から直接教わることで、エラーが起きた時に解決方法を相談しながら進めることができます。プログラミングの書き方だけでなくエンジニアとして続けていくための学習方法も身につけることができます。弊社「侍エンジニア塾」では、あなたの目的に合わせてフルオーダーメイドのカリキュラムを作成し、プログラミング指導を行なっております。あなたの理想の働き方をする現役エンジニアの講師あなたのキャリアから逆算した最適な言語、スキルを学べるカリキュラムあなただけのオリジナルアプリ開発支援、実践に近いスキルを習得この3つの軸で、プログラミングを学ぶだけでなく、あなたのキャリア設計も全力でお手伝いいたします。無料体験レッスンでは、「まずあなたの理想の人生をヒアリング→エンジニアのどんなキャリアを歩めばいいかを提案→最適な言語や学習プランの考案」の順番で「このプログラミング言語をこの順番で学べば自分の人生を変えられる」とイメージできるコンサルティングをしております。無料体験だけでも今後のプログラミング学習の効率をあげる内容をご提案できます。オンラインでも可能ですので、下記のカレンダーよりお気軽にお申し込みください。無料体験レッスンを予約するまとめGitとは?という概要から、特徴やGitを使ってできることなどを説明しました。Gitがあれば、作業中に出てくるストレスを減らして作業効率をグンと上げることができます。2019年11月25日TweetPocket「プログラミング、右も左もわからない...」という方にオススメ当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。その経験を通して、プログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。兵政和フリーランスコンサルタント。侍メディア事業部でのメディア運営・ライター業務なども担当。