GitHub 入門

  • 133
    いいね
  • 0
    コメント

はじめに

現状

  • 仕事ではSubversionを使用。仕事とは関係なく、プライベートでGitHubを使ってみたい。
  • GitHubに登録してみたはいいものの、1年くらい放置。
  • 今さらですが、勉強のために、GitやGitHubについてまとめてみようと思った。(自分のメモ用でまとめたので、もし間違ってるところとかおかしいところがあったら教えていただけると助かります)

Git とは

  • バージョン管理を行うためのツール。
  • リモートリポジトリ(共有リポジトリ)とローカルリポジトリを使い分けて開発を行う。
  • 2005年に誕生。もともとはLinuxカーネルのソースコード管理のために、リーナス・トーバルズによって開発された。
  • 売り → 高速。作業時にサーバ接続が必要ない。等

GitHub とは

  • Gitを利用した、リモートリポジトリ(共有リポジトリ)を提供しているwebサービス。
  • ご利用には登録が必要。無料プランの場合、原則全て公開(パブリック)。非公開(プライベートリポジトリ)にするのは有料(現在は$7/月)。
  • GitHubのキャラクターは「Octocat」。

Git系サービス

GitHubが有名だけど、Git=GitHubではないです。

事前に知っておいて(知っておいたら)良かったこと

Gitの概要系

コミットメッセージ系

チケットがあれば refs #チケット番号 でいいと思いましたが、チケットがない場合、コメントに何を書いていいか、どんなことを書けばいいか分からないです。これらの記事を読んだら、なんとなくイメージがつかめた気がします。[コミット種別]要約 でやってみようと思いました。いずれは全て英語で書いてみたいです。
あと、コミットの粒度についても気をつけたいです。

セキュリティ系

他人事じゃない。GitHubって便利だけど、原則公開なので注意したいです。調べるまで、非公開にする仕組み .gitignore があるのも知らなかったです。

ノウハウ?系

学習サイト系

学習本

はじめての GitHub

目標

とにかく使ってみる。始めに出てくる以下のコマンドを理解する。

echo "# test" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/ユーザ名/xxx.git
git push -u origin master

GitHub のアカウント登録

GitHubから登録。

GitHub のレポジトリ作成

右上の + をクリックして、「New repository」を選択。「Repository name」を入力して「Create repository」をクリックして作成。

インストール

環境に合わせてインストール。下記はAmazon Linuxの場合。

yum -y install git

バージョン確認

git --version

初期設定

Git で管理したいディレクトリを作成→移動。

mkdir ディレクトリ
cd ディレクトリ

Gitを使う宣言

.git フォルダが作成される。

git init

Gitで管理したくないものはここに記述。

vi .gitignore

ユーザー名・メールアドレスの設定

事前に GitHub で登録が必要。

git config user.email メールアドレス
git config user.name ユーザ名
  • --global オプションをつけて git config --global user.name ユーザ名 のようにすると、そのPC上で行なう全ての操作に対して常にこの情報を使うようになる。

config 設定の確認

git config --list
git config 確認したい設定
  • --list で全ての設定を確認可能

config 設定の削除

git config --unset 削除したい設定

コミット準備

事前確認

ファイルの状態を確認

git status
  • ちなみに、ここで git checkout -- ファイル名 とすると変更前に戻すことが出来る。

差分を確認(ステージングエリアに上げる前)

git diff
  • add後(ステージングエリアに上げた後)は git diff --cached で確認出来る。

管理対象に追加

管理対象に追加=「ステージングエリアに上げる」という言い方をすることもある。

git add 管理対象にしたいもの
  • git add . 今のディレクトリより下のものを全て管理対象に追加。

add後確認

ファイルの状態を確認

git status

差分を確認

git diff --cached

コミット

コメント付きでコミット

git commit -m "first comment"

コミット後の確認

コミットログを確認

git log
  • git log --oneline 1コミットにつき1行だけのコンパクト表示で見れる。
  • git log -p xxxxxx どこが変更されているか詳細が見れる。
  • git log --stat どのファイルがどれくらい変更されてるかざっと見れる。

origin 登録

共有リポジトリを登録。
https://github.com/xxx/xxx.git に「origin」というあだ名をつけるようなイメージ。

git remote add origin https://github.com/xxx/xxx.git

git remote add [name] [url]。
origin は共有リポジトリのこと。レポジトリの場所(URL)の別名。

共有リポジトリに反映

ローカルでの開発内容を共有リポジトリに反映させる。

git push -u origin master

ユーザ名やパスワードを聞かれるので入力。
origin は共有リポジトリのこと。レポジトリの場所(URL)の別名。
master はブランチ(枝分かれ)の名前。ちなみに master は大事なブランチなので、個人利用では自由にpushしても大丈夫だけど、チームでの場合はmasterには通常pushしないので注意。ブランチはGUIから確認可能(<>Codeタブのすぐ下に n branches と出ていて、クリックすると詳細が見れる)。

「-u」オプションについて

省略の呪文。git push -u origin master とすると、次回から git push だけで引数に指定した origin master で勝手に push してくれる。

初めてじゃない GitHub (随時更新予定)

今の所まだこの程度です。。必要に応じて身につけていきたいです。随時更新していきたいです。

目標

とりあえずGitHubを使ってみる。慣れる。

masterを更新したい時

追加→確認→コミット→プッシュ。

git status
git diff
git add .
git status
git commit -m "コメント"
git push origin master

ブランチ切って更新→マージしたい時

ブランチ=「枝分かれ」の意味。複数のバージョンを同時に開発したいときに使うと便利らしい。

# ブランチ作成
git branch ブランチ名

# ブランチ確認 (頭に * のついているのが現在のブランチ)
git branch

# ブランチ切り替え(移動)
git checkout ブランチ名

# 変更(ブランチ先にコミットしたりする)
git status
git diff
git add .
git status
git commit -m "コメント"

# リモートにPush
git push origin ブランチ名


##### 区切りが良くなって、マージしたくなった時 #####

# マージ先(master)に移動
git checkout master

# さっき作成したブランチをマージ先にマージ
git merge ブランチ名

# ログ確認(さっきのブランチの変更内容がマージ先に反映されているか確認)
git log

# Pushする
git push origin master

# マージ後に削除
git branch -d ブランチ名
git push origin :ブランチ名

その他

helpを見たい時

git help
  • 更に詳細が知りたいときは git help [config等] または git [config等] --help のようにすると出てくる。

共有リポジトリをローカルに持ってきたい時

インストールなどでお馴染みのコマンド。

git clone https://github.com/ユーザ名/xxx.git ローカルディレクトリ

変更を取り込みたい時

ローカルリポジトリのmasterブランチにリモートリポジトリoriginのmasterブランチを取り込む。

git checkout master
git pull origin master

感想

GitHub歴1週間

  • 便利。バージョン管理が簡単に出来るし、webでも見れる。ホームページやブログのような感じで楽しい。
  • GitHub の使い方系のサイト見て、見よう見まねでコマンドを打てば、簡単にファイルを管理出来た。
  • 実際に使ってみたり、自分でまとめてみたり、調べてみないと何やってるかよく分からなかった。GitHub がちょっと分かるようになった気がして好きになった。
  • プロジェクトや人を登録して行動を追えたり、自分がどれくらい作業したかグラフで分かったりするのが面白い。
  • 「分散型」のメリットはまだ実感できていない。