1
5

More than 5 years have passed since last update.

Git,GitHub基礎

Posted at

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を弄ったほうが楽。

.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ファイルが無ければ作る。

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接続出来る。

1
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
5