こんにちは coffeeです。

今日はgitとgithubについて自分の復習も兼ねてまとめて見たいと思います。

 

Gitとは何か?

Gitはリーナス・トーバルズが開発した、分散型バージョン管理システムです。

リーナス・トーバルズはLinuxを作った人です。チョットデキルTシャツはあまりにも有名。

 

バージョン管理システムにSubversion(SVN)というものがありますが、これは集中型バージョン管理システムです。

バージョン管理の説明は省略します。

Subversion 対 Git:どちらを使うべきなのか?いろいろな観点から比較してみた

集中型バージョン管理システムと分散型バージョン管理システムの違い

分散型バージョン管理システムで代表的なもの

  • Git
  • Mercurial

集中型バージョン管理システムで代表的なもの

  • Subversion
  • CVS

Gitを使うシーンとは

個人で作業をする分には自分でバージョン管理を行えば良いですが、最新のファイルがいくつもできてしまって混乱する、という経験をされたことのある方もいらっしゃると思います。

また、仕事で複数人と開発をする場合、いつどこで誰が何を変更したのか、またはしたいと思っているのか、履歴を残して置く必要が出てきます。

そのような時に、バージョン管理システムはきっと役に立ってくれます。

Git用語のまとめ

Repositry

データの保管場所。英単語としては「収納場所、倉庫」の意味。

Remote repositry

サーバーに存在するリポジトリ。

Local repositry

ローカルに存在するリポジトリ。

Clone

リモートリポジトリを複製する。

Branch

一連の修正を、主流とは別に分岐させ管理するもの。

Check out

他のブランチに移動し、操作ディレクトリの作業を任意で反映させる。。

Working tree

最新のファイルの状態。

index/stage

任意の作業を反映させるためのファイルの状態(一時的な状態)。

HEAD

最新のコミットの状態。

add

working treeからindexへ情報を追加。

commit

indexからlocal repositryへの反映。

push

local repositryからremote repositryへのデータの押し出し。

origin

リモートリポジトリの名前。

master

最初にリポジトリを作るとできるデフォルトのブランチ名。

origin/master

リモート追跡ブランチ。

fetch

リモートロポジトリにあるブランチを追跡ブランチまでダウンロードしてくる。

merge

リモート累積ブランチからローカルブランチに差分を取り込む。

pull

フェッチとマージを同時に行うコマンド。

pull request

コードレビュー機能。他の開発者に修正の内容を確認してもらう。

conflict

マージの際に、リモートとローカルで同じファイルの同じ箇所に対して修正がされており、自動でマージできないこと。両方の修正を合わせた内容に手動で編集する必要がある。

master branch

開発の大元

develop branch

ステージング環境に相当する分かれ道

feature

機能ごとにブランチを切る

リモート追跡ブランチ

リモート追跡ブランチ

 

GitHubとは

Gitを使用して構築されているWebサービスのこと。

GitHubという会社があったが、現在はMicrosoftに買収されている。

Hubとは、ハブ空港という言葉があるが、「主要な、中枢の」という意味を含んでいる。

名前のように、Gitを使うための主要なサービスとしての役割を果たしている。

 

1/9追記

昨日GitHubのプライベートリポジトリが無料解放されました。

これまでは1つのプライベートリポジトリごとに$7のクレジットが必要でしたが、これからは必要ありません。

主な使用目的としては、オープンソースのソフトウェアをプレイベートリポジトリで管理しながらカスタマイズしてみたい、趣味で友達や知り合いと共同でプログラミングをしたい、などになると思います。

まだバージョン管理を手作業でやってるよ!という方はこの機会にGitに入門してみてはいかがでしょう!

 

入門にあたっては以下のサイトが参考になると思われます。

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください