SSH鍵作成
$ ssh-keygen -t rsa -b 4096 ※ユーザー指定:-C ユーザー名(デフォルト:PCのログインユーザ名) -f ~/.ssh/ファイル名(デフォルト:id_rsa) Enter file in which to save the key (/User/xxx/.ssh/id_rsa): (空のままEnter) Enter passphrase (empty for no passphrase): (空のままEnter) Enter same passphrase again: (空のままEnter) 公開鍵 $ cat ~/.ssh/id_rsa.pub
ユーザー
確認 $ git config --global -l 変更 $ git config --global user.name "ユーザー名" $ git config --global user.email メールアドレス git pushの「--set-upstream origin ブランチ名」を不要にする $ git config --global push.default current
クローン
$ git clone git@サーバー名:リポジトリ名
オリジン
確認 $ git remote -v 追加 $ git remote add 対象(origin等) git@サーバー名:リポジトリ名 削除 $ git remote remove 対象(origin等)
ブランチ
ローカルブランチ確認 $ git branch リモートブランチ確認 $ git branch -r ローカル&リモートブランチ確認 $ git branch -a ローカルブランチ作成&切り替え $ git checkout -b ブランチ名 指定コミットからブランチ作成 $ git checkout コミットID -b 新ブランチ名 既存ブランチに新規切り替え $ git checkout -b ブランチ名 origin/ブランチ名 取り込み済みブランチに切り替え $ git checkout ブランチ名 ローカルブランチ名変更 $ git branch -m 現ブランチ名 新ブランチ名 ローカルブランチ削除 $ git branch -D ブランチ名 リモートブランチ削除 $ git push origin --delete ブランチ名
取得・確認
プル(リモートブランチをローカルリポジトリにマージ) $ git pull コミットログ閲覧 $ git log ファイル名(省略ですべて) 直近のコミット内容閲覧 ※zshの場合 % git diff "HEAD^" ※bashの場合 $ git diff HEAD^ どのコミットか調べる $ git blame -L 開始行番号,終了行番号 ファイル名
取り消し
ローカルでの変更を取り消す $ git checkout ファイル名 変更した全てのファイル $ git checkout . 新規も含む全てのファイル $ git clean -df . 直前のcommitを取り消す ※zshの場合 % git reset --soft "HEAD^" ※bashの場合 $ git reset --soft HEAD^
反映
変更ファイル表示 $ git status コミット対象ファイル追加 $ git add ファイル名 新規コミット $ git commit -m "コミットメッセージ" 修正を前のコミットに含める ※レビュー後はやらない方が良い。プッシュ後の再プッシュは「git push -f」 $ git commit --amend 作成したブランチをプッシュ(ローカルをリモートに送信) $ git push origin ブランチ名 $ git push --set-upstream origin ブランチ名
マージ
delevopをmasterにマージする例
$ git checkout develop ($ git checkout -b develop origin/develop) $ git pull $ git checkout master ($ git checkout -b master origin/master) $ git pull $ git merge --no-ff develop $ git push origin master $ git checkout develop
マージ(fetch)
forkしたリポジトリをfetchでマージする例
※同じリポジトリでも可能。ブランチを切り替える必要がなくなるので楽!
初回のみ $ git remote add upstream git@サーバー名:リポジトリ名 念の為、ローカルを最新化 $ git pull $ git fetch upstream $ git merge upstream/develop ($ git merge upstream/space_develop) $ git push