Git,GitHubの基礎を備忘録的にまとめてみました。
環境
virtualbox 5.2.26
vagrant 2.1.2
mac 10.14.2
Gitとは
バージョン管理システム
システム開発での区切りを記録して管理出来るもの。
誰がどのような意図で、どのような変更をしたかなどが明確に分かる。
Gitを導入する事で以下のメリットが生まれる。
・コードとコメントを分けられて、履歴が分かりやすく管理出来る。
・任意のバージョンを指定でき、即座にバージョンを切り替えられる。
・ローカルとリモートで管理する事で複数人での開発に役立つ。
Gitを使った開発Flow
ローカルリポジトリ作成
# 任意のディレクトリで
git init
リモートリポジトリをclone or pull
cd [ローカルリポジトリ]
git clone [リモートリポジトリのパス]
or
cd [ローカルリポジトリ]
git pull [リモートリポジトリのパス]
ローカルに開発用ブランチを追加して、チェックアウト
git checkout -b [開発用ブランチ名]
開発してadd〜commit
# ファイルをインデックスに追加
git add [file_name or dir_name]
# コミット
git commit -m "comment"
ローカルの開発用リポジトリをリモートの開発用リポジトリにプッシュ
# originという名前でリモートリポジトリを追加
git remote add origin [リモートリポジトリの開発用ブランチのパス]
# 登録したリモートリポジトリにローカルリポジトリをプッシュ
git push origin [開発用ブランチ名]
# git push -u origin [開発用ブランチ名] で次からブランチ名省略可
# git remote rm origin で登録されているリモートリポジトリを削除
プルリクエストを送る→マージorボツ
githubだとメニューからプルリクエスト選択して、リクエストを送る。
OKならマージし、新バージョン。
リモートをローカルリポジトリのマスターにプル
git pull [リモートリポジトリのパス]
基本コマンド
初期設定
ユーザー名、メールアドレス登録
git config --global user.name [ユーザー名]
git config --global user.email [メールアドレス]
エイリアス登録
コマンドからも出来るが.gitconfigを弄ったほうが楽。
[user]
name = [name]
email = [email]
[alias]
co = checkout
br = branch
st = status
cm = commit
sh = show
cp = cherry-pick
ad = add
lo = log
履歴関連
変更の履歴を表示
git status [オプション]
#オプションにディレクトリ等を指定でそのディレクトリ内の変更表示
コミットの履歴を表示
git log [オプション]
# オプション
--numstat # ファイル毎の追加削除行数を表示
--since="[日数] days ago" --until="[年/月/日]" # 日付指定
--graph # 見やすく表示
--merges # マージのみ
--all # 全ブランチ
ブランチ関連
ブランチ表示
git branch
ブランチ切り替え
git checkout [ブランチ名]
ブランチ作成と共にチェックアウト
git checkout -b [ブランチ名]
ブランチ削除
# HEADにマージしたブランチ削除
git branch --delete [ブランチ名]
# マージしたかを問わずに削除
git branch -D [ブランチ名]
タグ関連
タグ表示
# タグ一覧表示
git tag
# 注釈も表示
git tag -n
タグ追加
git tag [タグ名]
注釈付きタグ追加
git tag -a [タグ名] -m "コメント"
# 以前のコミットにタグを付ける。
git tag -a [タグ名] -m "コメント" [コミット]
タグ削除
git tag -d [タグ名]
タグをプッシュ
タグはブランチをプッシュした時に反映されないため、別でプッシュする。
tag push origin --tags
GitHubとSSH接続
SSH (Secure Shell) プロトコルを利用してターミナルから安全にGitHubに接続する。
SSHは秘密鍵・公開鍵を使用した鍵認証によって、
クライアントとリモートマシンの通信を暗号化し安全にコマンドを実行できる。
まず、簡単なコマンドから2つの鍵を作る。
# sshのディレクトリに移動
cd ~/.ssh
# 鍵を作成 ssh-keygen [オプション]
ssh-keygen -t rsa -b 4096
-t rsa = 鍵の種類。他より強固。
-b 4096 = 鍵の長さ。rsaは4096bit
鍵名とパスフレーズを入力し、鍵が作成される。
GitHubに公開鍵をアップする
https://github.com/settings/keys
からGitHub上に、公開鍵をアップする。
configファイルに鍵情報を登録
sshディレクトリ内のコンフィグファイルに鍵情報を記載する。
※configファイルが無ければ作る。
Host github github.com
HostName github.com
User git
IdentityFile ~/.ssh/[鍵の名前]
これで、下記コマンドでGitHubとの接続を出来る。
ssh -T github
パスフレーズを入力し、
Hi [ユーザー名]! You've successfully authenticated, but GitHub does not provide shell access.
と表示されればOK!
これで、ターミナルからGitHubにSSH接続出来る。