Git
○○したい、という形でまとめたい
gitを使い始めたい
インストール後
$ git config --global user.name "Takahiro Kobayashi"
$ git config --global user.email "koba925@gmail.com"
aliasを設定したい
$ git config --global --editまたは.gitconfigを編集
code:.gitconfig
co = checkout
l9 = log -9 --graph --all --pretty=format:'%C(yellow)%h%C(cyan)%d%Creset %s %C(white)- %an, %ar%Creset'
新規にプロジェクトを開始したい(GitHubは使わない)
$ git init
ローカルにリポジトリを作成する
コミットのログを表示したい
aliasを設定しておく
l9 = log -9 --graph --all --pretty=format:'%C(yellow)%h%C(cyan)%d%Creset %s %C(white)- %an, %ar%Creset'
あまり使わないパターン
オプションなし
$ git log
表示が長くなるのであまり使わない
コミットメッセージの1行目だけを表示する
$ git log -pretty=short
これでもまだ長い
コミットログを1行ずつで表示したい
$ git log --pretty=oneline
または
$ git log --oneline
コミットログをグラフィカルに表示
$ git log --graph
ファイルの差分を表示する
$ git log -p
これもますます長くて
今修正したところを確認したい(addする前)
$ git diff
ワーキングツリーとインデックスの差分を表示している
今修正したところを確認したい(addした後)
$ git diff HEAD
ワーキングツリーと最新コミットの差分を表示する
ブランチを表示する
$ git branch
* が現在のブランチ
ブランチを作成して切り替える
$ git checkout -b ブランチ名
指定したブランチを現在のブランチにマージする
$ git merge ブランチ名
Fast-forwardしないでマージする
$ git merge --no-ff ブランチ名
デフォルトをno-ffにする
$ git config --global --add merge.ff false
$ git config --global --add pull.ff only
ひとつ前のブランチに切り替える
$ git checkout -
過去のコミット履歴を参照
$ git reflog
指定したハッシュの状態をすべて復元
$ git reset --hard ハッシュ
コミットだけを指定したハッシュの状態に復元
$ git reset --soft
インデックスをリセットしてコミットを指定したハッシュの状態に復元
$ git reset
コミットメッセージを間違えたことにすぐ気づいたら
直前のコミットのコミットメッセージを修正する
$ git commit --amend
指定したコミットまで遡ってコミットし直す
$ git rebase -i コミット
ローカルで作ったリポジトリをGitHubに登録するには
GitHubでリポジトリを作成
リモートリポジトリを登録
$ git remote add リモートリポジトリ名 リモートリポジトリのURL
現在のブランチをリモートリポジトリのブランチに送信し、アップストリームに指定する
$ git push -u リモートリポジトリ名 リモートブランチ
あとは単にgit pushでプッシュできる
現在のブランチをアップストリームに送信する
$ git push
リモートにあるブランチも一覧したい
$ git branch -a
リモートにあるブランチをチェックアウトしたい
$ git checkout -b ローカルのブランチ名 リモートのブランチ名
リモートのブランチをマージしたい
$ git pull リモートリポジトリ名 リモートブランチ名
カレントのブランチにマージされる
Fork元を登録したい
$ git remote add upstream Fork元のリポジトリURL
Fork元の更新を反映したい
$ git checkout master
$ git fetch upstream
$ git merge upstream/master