Gitとは
ソースコードのバージョン管理を行うためのソフトウェアです。複数人でシステム開発するときには、ソースコードの変更管理は必須です。変更管理しないと、どのソースコードが最新なのか、どんな変更が入っているのか分からなくなって大変です。
そんな変更管理を簡単にできる仕組みがGitです。Gitでは「リポジトリ」という保管場所を作成し、その配下にファイルやディレクトリを置くことによって、配置されたディレクトリやファイルの変更履歴を記録することができます。
あのLinuxの創始者であるLinusさんが開発したそうです。また、現在のメンテナはなんと日本人で、濱野純さん(こんな方)。
Git Hubとは
Gitを世に知らしめたウェブサービス。GitHub社が運営。1
クラウド上でGitの「リモートリポジトリ」(後述)を提供することにより、地理的に離れた場所でも一緒に開発することが可能になりました。
他のGitのホスティングサービス
実はGitを使えるサービスは他にも存在し、Attlasian社のBitbucket、クラウドではなく自社サーバーでGitの環境を構築できるGitLabなどもあります。2
GitとGitHubを使ってできること
自分のPCにGitで「ローカルリポジトリ」を作成し、ソースコードの変更を管理します。
Git Hubに作成するリポジトリは「リモートリポジトリ」と呼び、ローカルリポジトリからリモートリポジトリにソースコードをアップロードすることで他の人にソースコードを共有することができます。
Gitのインストールと初期設定
それではまず、Gitの方から設定していきましょう。
環境
Mac
最初からインストールされているはずですので
下記のコマンドでバージョンが表示されることを確認しましょう。
$ git --version
最初にやること
プロフィールを設定します。(Git Hubで公開されても問題ない内容にすること)
--global
オプションは、~/.gitconfigを変更するのに必須のオプション。3
$ git config --global user.name "your name"
$ git config --global user.email "your@email"
設定ファイルが更新されます。
[user]
email = your@email
name = your name
コマンド出力を色をつけて見やすくしましょう。
$ git config --global color.ui auto
設定ファイルが更新されます。
[user]
email = your@email
name = your name
[color]
ui = auto
Git Hubの設定
Git Hubでアカウントを作成しましょう。
アカウントにログインできたら、リモートリポジトリを作成します。
Gitでローカルリポジトリを作成する
Macで、先ほどGit Hubで作成したリポジトリ名と同じ名前のディレクトリを作成して、そのディレクトリ内でgit init
を実行します。
$ mkdir sample
$ cd sample
$ git init
git init
を実行すると、.git
ディレクトリが作成されます。
ls -la
で.
(ドット)から始まる隠しディレクトリも表示できます。
$ ls -la
drwxr-xr-x 3 hoge staff 96 10 12 14:08 .
drwxr-xr-x 17 hoge staff 544 10 12 14:06 ..
drwxr-xr-x 9 hoge staff 288 10 12 14:44 .git
リモートリポジトリの設定
ローカルリポジトリの設定に、接続先のリモートリポジトリを設定します。
まずは、リモートリポジトリのURLをコピーします。
先ほど作成したローカルリポジトリ内で、次のコマンドを実行します。
git remote add origin
の後ろにリモートリポジトリのURLを入力します。
origin
とはデフォルトのリモートリポジトリのことです。(他の名前で登録することも可能ですがorigin
とするのが慣習です。)
$ git remote add origin https://github.com/hoge/sample.git
.gitディレクトリ配下にあるconfigファイルにリモートリポジトリのoriginリポジトリの設定が追加されています。
[remote "origin"]
url = https://github.com/hoge/sample.git
fetch = +refs/heads/*:refs/remotes/origin/*
続きはこちら
GitとGit Hub 入門(2/3)
GitとGit Hub 入門(3/3)