RaNxxx’s blog

データまわりの知識やノウハウを紹介するブログです

GitHubの第一歩|基本知識及びGitHubへのファイルプッシュ

初めてGitHubを知ったのは、去年の12月でした。

その時は、ちょうど機械学習(当時は、まだ人工知能という漠然とした概念)に可能性を感じはじめたところでした。 pythonすら理解していなかった私は、何かのきっかけで、GitHubを知りました。

でも、その時はまだ、自分がこれからGitHubを使うようになるとは、夢にでも思いませんでした。笑

さて、早速ですが、最近GitHubの利用に伴って、勉強したことを纏めてみようと思います。 ※ここでは、あくまでも勉強している最中の私がメモとして纏めたもので、理解が足りていないものがあれば、優しくご指摘いただければ幸いです。

 


 

 

Githubとは

GitHubを説明するには、まずGitから説明する必要があります。

「Gitとは」を一言でいうと、プラグラミングコードのバージョン管理システムです。 ※ググったら、正確な表現「プログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システムである」が出てきました。

そして、GitHubというのは、GitHubという会社が提供・運用し、個人や法人を問わず利用できるWebサービスです。 似たようなサービスは、BitbucketとGitlabなどがあります。

 

非エンジニア向けに、GitHubのメリットを簡単に説明します:

ファイルの共同編集で、DropboxGoogle Driveがよく使われているように、エンジニアたちも、共同でサービスやプロジェクトの開発において、共同作業が発生します。

そこで、DropboxGoogle Driveを代替するのは、Githubになります。コードを管理することにおいてはGitHubのほうが共同編集に向いています。

なぜならば、GitHubのワークツリーの構造によって(次で説明します)、各エンジニアは、変えたい部分に対して、その部分だけ変更し、アップロードすることができます。

 

Gitの構造

ネットで色々調べたら、図なりで非常に分かりやすい説明があったので、ここでは引用させていただきます。

Gitの構造をいう前に、まず専門用語を理解しなければいけません。

天才的な説明はこちらです:

出所:http://kray.jp/blog/git-why-explanation/

この4つの単語を理解したら、今度はこれらを組み合わせた後の仕組み図を理解しましょう。 一番分かりやすい図はこちらです:

出所:http://noodles-mtb.hatenablog.com/entry/20110920/1316480836

つまり、各ユーザーがローカル環境で、ワークツリーで今の作業しているファイルに対して変更を行います。 そして、変更ができたものを、インデックスに登録して、さらにローカルのリポジトリに記録させます。 最後に、それを中央リポジトリにアップロードして、それから初めて、他のメンバーにも共有することができます。

 

あと3つの言葉を覚える必要があります。

ワークツリーからインデックスに登録する動きを「add」と言います。 インデックスの内容をリポジトリに記録させることを「commit」と言います。 最後に、ローカルリポジトリから中央リポジトリにアップするのは「push」と言います。

 

これで、Gitに関する最低限の知識をマスタしたはずです。

次は、Linuxコマンドを使って、Github上にファイルをpushする方法をご説明いたします。