2018-05-21_gitとgithubの備忘録

概要

最近gitとgithubを今更ながら触り始めました。
OSをセットアップした際に使えるようになるまでの手順をまとめました。

動作環境

  • Ubuntu 18.04 LTS
  • xselコマンドを使用(ターミナルからのコピペなのでなくてもOK)

初回コミット前にやること

ユーザー、メールアドレスの登録

ユーザー名とメールアドレスを登録しないとコミットできませんので登録しましょう。
実施するのはローカル環境です。

1
2
3
4
5
## ターミナルで操作
$c username=hoge
$c useremail="${username}@gmail.com"
$c git config --global user.name "${username}"
$c git config --global user.email ${useremail}

githubにssh鍵を登録

sshでgithubに接続出来るよう鍵を登録します。
リモートリポジトリへのpushで使います。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
##c ターミナルで操作
##c 鍵を保存するユーザーディレクトリへ移動
$c cd ~/.ssh

##c 鍵を作成
$c ssh-keygen -t rsa

##c 鍵の内容をクリップボードへコピー
$c cat id_rsa.pub | xsel -ib

##c ブラウザで自分のgithubへアクセス
##c 右上のユーザーアイコンからSettingsを押下
##c SSH and GPG Keysを押下
##c New SSH keyを押下
##c Title(一覧で表示される名前)とKeyの内容を全て貼り付ける
##c ブラウザの操作は終了

##c ターミナルで操作
##c sshで疎通できるか確認
##c You've succsessfullyが表示されれば疎通OK
$c ssh -T git@github.com

ローカルリポジトリとリモートリポジトリ

gitの特有の概念としてローカルリポジトリとリモートリポジトリという考え方があります。

自分のPC内で管理するリポジトリをローカルリポジトリと言い、githubなどのオンライン上で管理するリポジトリをリモートリポジトリと言います。

ソースコードの修正はローカルリポジトリで行い、区切りの良いところで都度都度リモートリポジトリに反映する運用が一般的です。

githubにpushする

流れとしてはadd => commit => pushを順番に行います。 すでにリモートリポジトリにpushされているファイル類を取得する場合はcloneで新規にローカルリポジトリを作成します。

サブコマンド 役割 方向 オプション
add ローカルリポジトリに更新対象を追加 ローカル => ローカル -A 変更されたファイルを更新対象に含める
commit addした更新対象を反映 ローカル => ローカル -
push ローカルリポジトリをリモートリポジトリへ反映 ローカル => リモート -
pull リモートリポジトリの更新をローカルリポジトリに反映 リモート => ローカル -
clone リモートリポジトリから新規でローカルリポジトリを作成 リモート => ローカル -
status addした対象やリポジトリの状況を確認 - -

ssh形式でリモートリポジトリからclone

ssh形式でcloneするとpush時にユーザー名、パスワードが聞かれなくなるので便利。

1
2
3
##c ターミナルで操作
$c username=hoge
$c git clone git@github.com:${username}/repositoryname.git

因みに私はssh形式のcloneの記載方法をよく忘れてしまうので下記のようなファンクションを.bashrcに登録してます。
ブラウザで自分のリポジトリページにアクセスしてアドレスを引数にファンクションを実行してあげると上記形式に整形してくれます。

1
2
3
4
5
6
7
function h2s (){
    if [ $# -ne 1 ] ; then
        echo "h2s エラー 必要引数:1 / 今回:$#"
        return 1
    fi
    echo "git clone ${1}" | sed -e s#https://github.com/#git@github.com:# -e "s#\$#.git#"
}