初心者向け!GithubでGit管理 の話

目次

git

今となっては、エンジニアとなったら必ず通る道。

Gitでのソースコード管理。

今となっては、エンジニアとなったら必ず通る道。Gitでのソースコード管理。Github上でweb公開するのにもGitの知識が必須となります。ターミナル上でのコマンドばかりで理解しづらいGitの管理を便利GUIツール GitForkの紹介とGitの基本コマンドなどをご紹介します



Gitとは

よく紹介されている言葉でいうと

分散型ソースコードバージョン管理システム

です。

自分ひとりで作業している分には全く気にしなくても大丈夫ですが、

等のときには、とても便利でなくてはならない存在なのです。


あなたとと彼女等パートナーで、家計簿をあなたはあなたのPCのエクセルで、彼女は彼女のPCのエクセルで管理しているとします。

ここまではOKで何ら問題なしです。

ここから

この仕組がGitで行うことができます。 これをソースソースコードに置き換えて考えた時に、プログラミング等のファイルも同じことが言えます。

Gitは、これらのファイルの競合を解消しながら、共同でプロジェクトファイルのバージョンを管理してくれる仕組みです。

※途中の二郎の下り等全くどうでもいいですね。 すみません。




Githubとは

上の例で言ったら、あなたが彼女に共有したiCloudのファイルの置き場が、Githubにあたります。ソースコードのバージョン管理をweb上で行ってくれるwebサービスということになります。

同じようなサービスは他に、GitLabや、Bitbucket等があります。

例をGitに置き換えてみる

git


実際にファイルを更新する際の例

先程の例で、エクセルの更新作業をする際、

  1. 最新をweb(例だと icloud)からダウンロードする
  2. 自分のPCで更新作業をする
  3. 自分のPCで更新を確認する
  4. 自分のPCで更新した内容をメモる
  5. 更新内容をweb(例だと icloud)にUPし完了

となりますが、

Githubを使って全く同じことをGitに置き換えると

  1. 最新をGithub上からPullしてくる
  2. 自分のPCで更新作業をする
  3. 自分のPC(ローカル)で更新内容を add してインデックス登録する
  4. 自分のPCで更新した内容を Commitしつつログ(メモ)を残す
  5. 行員内容をGithub上にPushする

となります!

次によく使う用語で概要をお話したいと思います。



よく使うGitの用語


ローカルとリモート

上の例では、1でリモート(web)から落としてきて、5でリモートへUPしてます。 2〜4の更新、add、commitはあなたのPCでの作業。つまりローカルということになります。

Gitは、ローカルとリモートを紐付け、ローカルでの更新をリモートにUPしていくイメージとなります。

リモートとローカルのやり取りは、最初の紐付け以外、pushとpullだけとなります。それ以外のコマンドはリモートに影響はなく、ローカルでの作業となります。


commit

わかりやすく言うと、先程の4番、更新した内容のログを残しておくようなイメージです。 たとえば、このコミットで、どんな更新がされたかというのを記憶しておくことができます(リビジョン)。


add

コミット対象となるファイルをindex登録する作業で、index登録されていないファイルはコミットすることができません。 つまりコミット前に更新ファイルに対してaddをします。


pull

例で言うと、あなたのicloudや、githubなど、web上から差分(あなたのPCとweb上の)を落としてくる際にしようします。 web上の最新を取り込んでいないと、あなたの更新はpushすることはできませんので、作業まえにほぼ必ずpullします、


push

あなたのローカルでのコミットした更新をweb上にupする作業をする際にpushします。


リポジトリ

リポジトリとは、例でいうと、今回は、あなたと、彼女の家計簿エクセルでしたね。エクセルシートと一緒にレシートもUPすることにした場合、通称家計簿プロジェクトとなり、これらレシート画像とエクセルファイルは同じレポジトリで管理します。もし他に、旅行の写真ように別の場所を用意するとなったら、別のレポジトリを作成し、それぞれのレポジトリに対して操作をすることになります。 保存場所という認識です。


ブランチ

レポジトリ中の別の部屋みたいなイメージです。masterブランチがデフォルトでありますが、ここでは担保されたミスやバグの無いもののみ置かれる形です。


たとえば、家計簿であなたが二郎を食べすぎてこれがお小遣いとして承認するのに、一旦別の承認申請用のブランチを作成し、ここにpushし、彼女にチェックしてもらいます。問題なければ彼女はmasterブランチへこの承認申請用ブランチをマージ(合体)します。


マージ

ブランチで説明したとおり、ブランチとブランチを合体することをマージといい、上の例では、「masterブランチに、承認申請ブランチをマージする」というように、どっちかにどっちかを合体するという感じになります。


基本作業例

あなたは、githubでアカウントを作成し、リポジトリを作りました。まずgithub で作成したリポジトリをローカルに紐付けます。 その後、


初回 remoteレポジトリとの紐付け

$ git remote origin git@github.com:アカウント名/リポジトリ名
このURLはリポジトリ作成時に表示される


github等、web上のレポジトリからローカルに一式落としてくる

$ git clone git@github.com:アカウント名/リポジトリ名


ファイル更新作業をする






自分のいるブランチを確認する

$ git branch


ブランチを作成する

$ git branch ブランチ名


ブランチを切り替える

$ git checkout ブランチ名


自分の更新したファイルの一覧を確認する

$ git status


ブランチをマージする

今masterブランチにて、developというブランチをマージする

$ git branch
> master

$ git merge develop

普段良く使うのはこんなもんだと思います。 他にもcommitを取り消したり、resetしたり、素晴らしく便利なことができたりしますが、なれてきたら調べてやってみてください。 超初心者向けなので割愛します。


Gitfork

Git ForkというGUIのアプリがあります。他にも色々とGit管理系のアプリがありますが、個人的には一番わかりやすく使いやすかったので、紹介します。
ここまで紹介してきた、ブランチ切り替え、マージ、コミットなど、ターミナルでコマンドを叩かなくても視覚的にとてもわかりやすいのです。

更新したファイルは、差分も目視することが出来、とってもいいですよ。

基本を少し覚えたら、これを使うことをおすすめします。


Github Pagesとは

GitHub による、静的サイトのホスティングサービスになります。GitHubのアカウントがあればすぐに静的サイトが無料で公開できるのです。つまりサーバーを借りたり、毎月の費用等なく自分のホームページを作って公開することができます。

これはGitコマンドがわかれば誰でもできますので、このためにもここで紹介した内容くらいは抑えておくといいと思います!

【初心者向け】Github pagesでwebページを公開する方法


まとめ

いかがでしたでしょうか。Gitはエンジニアにとって必須科目となってきています。 将来フリーランスを目指している方など、エンジニアを志すなら言語問わずプロジェクト問わず、必須です。 各企業も当たり前のようにGithub等で、プロジェクトのソースコード管理をしていますので、Gitが使えなければ誰も雇ってくれません。といっても過言ではありませんので、

言語を選ぶまえにシェルコマンドやGitコマンドを学びましょう。

質問やおかしなところがあればお気軽にコメント下さい。

読んでいただきありがとうございました。

U-chan ( Nobuyuki Ukai )

学生時代は建築やデザインを専攻していたが、Yahoo!Japanにエンジニアとして運良く入社し、2年半で波情報を配信する波伝説に転職。3年後、Yahoo!時代の先輩の立ち上げたベンチャーに転職。数年後、伊豆下田に移住し、ゲストハウスを開業しながらリモートでエンジニアを続けたが、焼肉店の開業とともに株式会社UKAIを立ち上げ、法人成り。その後、カフェとゲストハウスをもう一軒開業し、現在は焼肉店、カフェ、ゲストハウス2件目を運営。今季は自社Webサイトの立ち上げ予定!

comments powered by Disqus