Github
リポジトリ
→ソースコードの開発に関わるデータをまとめて管理するためのデータ置き場フォーク
→他人のリポジトリをコピーして自分のリポジトリを作成すること
・Githubは直接ファイルを書いてコミットすることも出来る
・GithubにコミットしたらアクセスできるWebサイトになる
- issue(イシュー) →「議論における論点や関心ごと」という意味。Githubでは不具合や要求、その他の設計にかかわる関心事を取りまとめて議論するための機能のこと。
・解決したissueはCloseにすること。解決した時点のハッシュ(d879a30のような6桁の数字)を記載して閉じると良い
wiki
→Web上から簡単に内容を書き換えられる、Webサイト管理システムのこと。Githubではマークダウンで編集できる。Gist(ジスト)
Gist
メモやコードの断片を気軽に投稿できるサイト。「.md」の拡張子をつけるとマークダウンでも書ける
- Git →バージョン管理を行うソフトウェア。リポジトリに変更を加える(コミットする)とその度にバージョンが出来る。これをハッシュを使って管理する。
・SSH → Secure Shell
公開鍵認証
→「公開鍵」と「秘密鍵」で行う認証方法。通信したい相手に公開鍵情報を渡す。相手側は公開鍵を利用して暗号化、自分は秘密鍵を使って情報を復元する。公開鍵・秘密鍵の作成とGithubへの登録は以下を参照
Git と GitHub の連携clone
→リポジトリを自分のマシンにコピーしてくること。Forkも内部的にはcloneが行われている
git clone git@github.com:${自分のGitHubアカウント名}/${リポジトリ名}.git
でカレントディレクトリにcloneする
git pull origin gh-pages
で最新の変更を受け取る
・cloneして自分のマシンにあるリポジトリ:ローカルリポジトリ
・Github上のリポジトリ:リモートリポジトリ
・「pull」でリモートリポジトリの変更をローカルリポジトリに引っ張る
- git に自分の情報を登録しよう
$ git config --global user.name "${あなたの名前}" $ git config --global user.email ${あなたのメールアドレス} $ git config --global core.editor "vim"
下記コマンドで自身の情報を表示
```
$ git config -l
user.name=hoge
user.email=hogehoge@gmail.com
core.editor=vim
```
ローカルにリポジトリを作る
→リポジトリにしたいディレクトリに移動して、git init
でローカルリポジトリを作成リポジトリに変更を加える
→git add hoge
で「ファイルをリポジトリに追加したい」という変更情報を登録する。変更情報を登録することをステージングという。変更情報を保持している領域をインデックスという。
git status
でステージングの状況を確認
git commit -m "はじめてのコミット"
で変更状況をリポジトリにコミットする
・「-m」オプションでコミットメッセージを追加(必ずつけなければならない)
git log
でコミットログを確認
- 変更をGitHubに置く →Githubでリポジトリを作成しておく
git remote add origin git@github.com:${自分のGitHubアカウント名}/git-study.git
→リモートリポジトリのoriginは、このGitHubのアドレスのリポジトリを指すことにするという意味
git push -u origin master
→「push」でローカルでの変更をリモートに適用する。「-u」オプションで次回以降にoriginとmasterを省略した時に、自動でこの値とする
ワークツリー(ローカルのディレクトリ)→add→インデックス→commit→ローカルリポジトリ→push→リモートリポジトリ
- gitのタグ付け →特定のバージョンをリリースする際に使う。タグをつけると、つけた時点のコミットがzipでダウンロードできるようになる。
$ git tag 1.0
$ git push --tags origin master
- ブランチ(branch) ある地点からのソースコードの派生系のこと。リポジトリを作成した時にデフォルトで作成されるのが「master」ブランチ
git branch
で現在使用しているブランチを表示。後ろに名前を入れると、入力した名前のブランチを作成する
「gh-pages」という名前でブランチを作成してpushすると、「GitHub Pages」というサイトに自動的にwebサイトとして公開される。これはポートフォリオサイトによく利用される
- チェックアウト (checkout) 利用しているブランチを切り替える
git checkout gh-pages
- マージ (merge) 現在のブランチに他のブランチを取り込むこと
git merge gh-pages
・git add .
で全てのファイルをaddできるのは「.」がカレントディレクトリという意味だから
GitとGithubの連携(SSH接続)
SSHでは暗号化通信を行う際にパスワード認証も使うことができるが、より安全な公開鍵認証という認証方法もある
公開鍵認証とは
公開鍵認証とは、「公開鍵」と「秘密鍵」という 2 つの情報を使った認証方法。公開鍵と秘密鍵を作り、通信したい相手に公開鍵情報を渡し、秘密鍵は自分が秘密にしておく。相手と通信する際に、相手は公開鍵を使って情報を暗号化し、受け取る自分は秘密鍵を使って情報を復号SSH の公開鍵と秘密鍵の作成
ssh-keygen
で鍵の作成
# このディレクトリに鍵を作成して良いか聞かれる。ダメならパスを指定
Generating public/private rsa key pair.
Enter file in which to save the key (/home/${あなたの環境におけるUbuntuのユーザ名}/.ssh/id_rsa):
# この鍵を利用するためのパスワードを聞かれるので自由に入力。忘れないようにする
Enter passphrase (empty for no passphrase):
# もう一度入力
Enter same passphrase again:
これで鍵を表すアスキーアートが表示されていれば完了
鍵は指定したパスに入っている(標準なら~/.ssh
)
id_rsa
:秘密鍵
id_rsa.pub
:公開鍵
- 公開鍵を GitHub に登録
cat ~/.ssh/id_rsa.pub
でファイルの中身を表示できるのでコピー
Githubの「Settings→SSH and GPG keys→New SSH key」でタイトルは適当に入力、keyにはコピーした公開鍵を入力する