箱のプログラミング日記。

渋谷の自社開発企業でRails書いてます。

githubの使い方【概念】

 

共同開発において避けて通れない、githubについて

初学者向けにまとめておきたいと思います。

 

 

まず、gitとは

ローカル環境で開発したソースコードなどの作成・編集履歴をリモートのリポジトリに保存しておくことができる仕組みのこと。

自分のPC内のデータをリモートかつ共有の場所に保存しておけるという意味では「クラウド」とイメージが似ているが、

「複数人が同時にいじれる」「編集前の状態に戻すことができる」という点で、チームでの開発等に圧倒的便利なところが特徴

 

 

では、gitHubとは

gitの仕組みを使い、よりチーム開発に便利な機能を兼ね備えたWEBアプリケーション。

gitは通常ターミナルでコマンドにより操作するが、

github社が提供するgithub Desktopを使用すれば、グラフィカルに操作ができる。

 

 

githubを使った開発のイメージ

①まずローカル環境で新しいアプリケーションを生成する。

②すぐにリモートリポジトリに上げる。(これをプッシュと呼ぶ)

③アプリケーションに機能を追加したり、編集したりする時はもちろんローカル環境で行う。その都度、リモートリポジトリにプッシュする。これを繰り返す

 

要は、他の人が見ても変更の履歴が分かるように、また必要があれば変更前の内容に戻れるように、何か編集を加える際はローカルで手を加えて→リモートに反映させるの繰り返しということ。

 

開発を行いながら、同じ状態のアプリケーションが「皆が見られるリモート」と「自分が操作できるローカル」の二箇所で存在しているという状態。

 

 

で、チーム開発など複数人がいじる時に特に大事な考え方として、「ブランチ

 

編集履歴も残るし、先にローカルで操作したものをリモートに反映させるならそれで十分じゃないの?とも思うが

同じ場所を同じタイミングで、自分とは別の人が編集をしていたとしたら大変。

「自分は今これをしているよ」と他の人に知らせるためにも、

主軸から枝分かれさせた別フローで編集し、編集が終わったらその部分を主軸にくっつける

というイメージで開発を進めていく。

具体的に言うと、主軸はmasterブランチと呼ばれ、

新しい機能を追加する時とかは「自分は今からこれをやりますよ」という意味で

新しいブランチを作る。

 

投稿機能を作りたい→「create posting form」ブランチを作り

そのブランチ上で(ローカルで)ファイルの編集

→create posting formブランチをmasterブランチに合体

 

 

 

なんだか文章だらけになってしまいましたが、今日はこの辺りで。。。