Gitのすすめ
こんにちは。
新卒マイナス一年目エンジニアの和尚です。
今回はプログラマーにとって切っても切り離せないGitについての記事を簡単に書いていこうと思います。
Gitとは
(日本語訳)Gitは、小規模から大規模なプロジェクトまで、あらゆる処理を高速かつ効率的に処理できるように設計された、 フリーでオープンソースの分散バージョン管理システムです。git公式サイトより
開発を始めたばかりの人には、ピンとこないかもしれません。
GitやGitHubを聞いたことあるけど、なんだかわからない...
そんな人たちを対象に記事を書いていこうと思います。
Gitとはゲームに例えるとセーブデータのようなものなのですが、ただのセーブデータではなく、
- セーブした点に戻れる(前回のセーブ地点だけではなく、セーブしたところならどこでも)。
- セーブデータを分割できる。
- セーブデータを共有できる。
などなど、大まかにまとめるとこんな感じです。(詳しい人からすると怒鳴られそうな例ですね...)
こうして並べるとチートツールみたい!!
Gitを知る前の開発初心者だった一年前の僕は、こんな便利なものがあるとは知らず、作ったものを定期的にコピーしてzipファイルにまとめてバージョン管理をするという、今思うとだいぶ恥ずかしいことをしていました...
とにかく触って便利さを実感して見ましょう!!
まずはGitをインストールする
Gitをインストールする方法はいくつかあり、公式サイトによるとソースからインストールすることが推奨されています。
最新のGitを使用したい場合はソースからインストールするようにしましょう。
windows
mac
もしくは、Homebrewからインストールする。
$ brew install git
Linux
Gitはcurl、zlib、openssl、expat、libiconvに依存しているので、導入しているパッケージ管理ソフトもインストールしてください。
yumの方
$ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
$ yum install git
apt-getの方
$ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev
$ apt-get install git
Gitを使用する前の事前準備
gitに登録する
Gitを導入したら、まずユーザー名とメールアドレスを設定します。
$ git config --global user.name "あなたの名前"
$ git config --global user.email あなたのメアド
その他、エディターやdiffツールなども$ git config ~
で設定できます。
詳しくは公式サイトや$ git help congig
を参考にしましょう。
Gitに触ってみる
一通り準備が終わったので、Gitを使っていきましょう。
Gitリポジトリを取得するには
1.作業ディレクトリを作成する
$ mkdir gittest
$ cd gittest
$ touch index.html //空なので適当にhtmlファイルを作成
2.Gitローカルリポジトリの作成
1.でGitで管理するテストディレクトリを作成しました。これらをローカルで管理できるようにしていきます。
1.Gitリポジトリに必要なファイルの作成
$ git init
-
$git init
をすることで.git
ディレクトリが作成され、その中に必要なファイルが格納されます。
2.指定したファイルをGitの管理対象に入れる
$ git add [追加したいファイル]
-
$ git add [file name]
をすることで、Gitの管理対象に入れることができます。 - 作業ディレクトリ内のファイル全てを追加したい場合は
$ git add .
にすることで、全ファイルを管理対象にすることができます。
3. ファイルの変更を保存する。
$ git commit -m "保存時コメント"
-
$git add [file name]
で追加したディレクトリやファイルを保存する為に$ git commit
をします。 - オプション
-m
はメッセージを書く場合に使用するオプションです。
4. commitを確認する。
$ git log
上記のコマンドを打つことで、コミット一覧が見ることができます。
$ git show
上記のコマンドで、より詳細な情報を確認することができます。
5. 前回のコミットまで戻す(ロールバック)
失敗して前回コミットした時点まで戻りたい時のやり方を見ていきましょう。
一番最新でコミットしたのが上の画像のコメントでいうところの、second commit
だとして、first commit
に戻してみましょう。
使用するものは上の黄色のコミットidです。
$ git reset --hard c17eb1355c1d9f239920348020351d20e4c198db
-
git reset --hard [コミットid]
とすることで、コミットidで指定したコミット時点まで戻ることができます。 - オプション
--hard
について知りたい人は各自調べてください。
実際に作業しているファイルなどを見て、戻りたいコミット時まで戻れたかを確認してみましょう。
以上がGitの最低限の知識になります。
Githubを使ってリモートリポジトリを使用する。
これまで、自分のPC上でGitを管理する方法を見てきました。
ここからはGitHubを使って、サーバー上にコミットした情報を送る作業を覚えていきましょう。
リモートリポジトリを使用することで、共同開発やソースコードの共有などを行うことができます。
GitHub以外にも、GitLabやbitbucketなどのサービスがあり、自分にあった管理サービスを使用しましょう。
今回はGitHubを使用していきます。
GitHubに登録する
とにもかくにもGitHubに登録しないことには始まりません。
→GitHub登録ページ
1.情報を入力

2.freeプランを選択しる
※月に7$掛かる有料プランもあります。
3. 質問に答える
Q1. プログラミングレベル
Q2. GitHubの使用目的
Q3. あなたの立場
Q4. 興味のある分野
4.メールを確認する
5.SSH keyの登録をする。
- PC上で
$ ssh-keygen -t rsa
と打つ。 - Enterを押す。
- パスワードと確認用パスワードを打つ。
-
$ cat .ssh/id_rsa.pub
を打って、公開鍵をコピーする。 - GitHub→Settings→SSH and GPG keys→New SSH keyをクリック。
- titleとコピーした公開鍵をペーストしてAdd SSH keyをクリック。



ここまで終わったら、GitHubに登録完了&設定完了です。
リモートリポジトリの作成
1.New repositoryボタンを押す

2.リポジトリ名を入力する。

- 説明は任意です。
- Privateリポジトリ(非公開)を作成するには、有料プランに加入しましょう。(もしくは学生プランに加入する:無料)
- とりあえずは、
チェックボックス
、.gitignore
、ライセンス
は変更なしで大丈夫です。
3.Create repositoryボタンを押す
ローカルリポジトリとリモートリポジトリを繋げる。
PC上で$git init
〜をやったことにより、ローカルリポジトリが作成され、GitHub上でCreate repository
をしたことによりリモートリポジトリが作成されました。
これらを接続してみましょう。
一番簡単なのはコピー&ペースト

- 赤く囲ったところを押すと左側のコマンドが全てコピーされるので、先ほど作ったローカルリポジトリ内でペーストすれば、簡単に接続できます。
- パスワードを要求されるので、公開鍵を使用した時に打ち込んだパスワードを入力します。
コピーした内容を一行ずつ見ていく
1.README
$ echo "# test" >> README.md
まずこのコードですが、見たまんまREADME.md
ファイルを作成し、#test
という文を記入しています。
このREADME.mdファイルですが、リポジトリの説明書になっていて、マークダウン方式で記入します。
2.git init
$ git init
先ほど書いたのを覚えているかと思います。リポジトリに必要なファイルの作成をします。
※この記事を流れでやっている人は既に作成しています。
3. git add
$ git add README.md
README.md
(説明書)を監視対象に追加しています。
4. git commit
$ git commit -m "first commit"
説明書のコミットです。
5. git remote
$ git remote add origin git@github.com:osyou-create/test.git
ここがローカルブランチとリモートブランチを繋げるコードになります。
originとはリポジトリの別名です。
要するにorigin
という名前でgit@github.com:osyou-create/test.git
を登録するということです。
これで、ローカルリポジトリと作成したリモートリポジトリが繋がったのでコミット(ローカル保存)をリモートリポジトリにプッシュ(サーバーへ保存)していきましょう。
6. git push
$ git push -u origin master
-
push
… リモートリポジトリに反映&保存させる。 -
origin
… 送り先リポジトリ(この記事でいうところのgit@github.com:osyou-create/test.git
) -
master
… ブランチ(保存先)。 -
-u
…次回以降$ git push
のみでorigin masterにプッシュしてくれる。
開発初心者の僕はとりあえず、masterブランチとdevelopブランチ二つに分けて開発していますが、Gitに慣れたらA successful Git branching modelを参考にブランチを作って開発をしていきましょう。
最後に
ここまで書いたのは最低限のGitの知識なので、自分で調べて使いこなせるよう頑張ってください。
とりあえず慣れるまでは、masterブランチのみで開発をしていき、慣れたらすぐにブランチについて調べてmerge
やcheckout
など勉強しましょう。
souceTreeなどのGitクライアントを使用するとGitがもっと簡単に使えるようになるでしょう。