SSH公開鍵設定
Git初心者でも大丈夫!完全無料でGithub PagesにWebページを公開する方法
※複数アカウントでSSH KEYを使用している場合、別々のSSH KEYを用意する必要がある。
SSHでcloneするときgithub.comをgithub-sub(自分でつけたHOST名)に変更する
ex) git clone git@github${ここ変更}:example/repo-a.git
-
https://github.com--> パスワード認証 -
git@github.com--> SSH認証
同じサーバで、複数のGitHubリポジトリにDeploy keysを登録する
※会社やチームで作業している場合、公開鍵を上書きしてしまうと再設定が必要になるので注意。
branch
ブランチを作成し、即時にチェックアウト
git checkout -b ${new-branch}
リモートのブランチをそのままローカルに持っていきたい場合は、pullではなくcheckout
ex) git checkout -b develop remotes/origin/develop
この時、ローカルとリモートの名前を一致させないと以下の注意がでる
The upstream branch of your current branch does not match
the name of your current branch
リモートも含めたブランチ表示
git branch -a
ローカルのブランチをリモートに反映
git push origin ${new-branch}
gitのローカルbranchを作成し、リモートにpushする
merge
feature-Aブランチをmasterブランチにマージする
git checkout master
git merge --no-ff feature-A
fetch
pull : リモートの変更を取り入れ、ローカルに反映。
fetch : リモートの変更を取り入れるが、ローカルに反映はしない。
ex) マージせずに、リモートリポジトリの状態だけを知りたい
pull
pull = fetch + merge
git pull --rebase
commit -> pull -> push
auto merge -> merge commit
git rebase
=私の変更作業は皆が変更を完了したものをベースとして行いたい
過去のコミットを新たなコミットに置き換えるもの
conflict
ファイル修正 add commit
改めて pull push
diff
git diff ${ID番号} --name-only
source treeの'SHA-1'をコピーでIDを取得
stash
割り込み作業のための一時退避
blame
誰が変更を加えたかを割り出す。犯人探し
git blame ファイル名
過去の作業に戻る
checkout
HEAD(CDの再生位置のイメージ)を戻す
ex) 先月末の状態を元に、新たなブランチを切りたい
rebase
git rebase -i HEAD~2
最新2つを対象
fixup(なかったことにしたい歴史)をpickに含める
pick = use commit
fixup = discard
ex) typoした歴史をなしにする
reset
戻せるのはローカルリポジトリのブランチのみ
(pullすればもとに戻る)
コミットを消失させる機能ではなく、
ブランチの指すコミットを変更しているだけ
ex) 他のブランチにコミットするはずが、masterブランチにコミットしてしまった。masterブランチの状態は元に戻したい。
revert
過去作業を訂正する
ex) 数週間前のある作業だけをキャンセルしたい
Github Flow
バグや機能追加など、新しく作業する際には常にブランチを切る
masterは常にデプロイできる状態
masterにマージしてもらうためにp-r
便利な記法
- githubのissueで以下の書き方をすると、編集画面を出さずにtodoのチェックを着け外しできる。
- [ ] todo1
- [ ] todo2
- issueで引用したい部分を選択して 'r'で引用コメントがつくれる
プルリクエスト
リポジトリへの書き込み権限なし
-> forkしてブランチを切ってp-r(一般的)
リポジトリへの書き込み権限あり
-> ブランチを各人が作成して、masterにp-r
.gitignore
作業の途中から変更したい場合
git rm -r --cached .
参考
Gitチュートリアル