随時更新します。
基本操作
ブランチを作成したい
git branch [name] git branch [name] [ハッシュ] // コミットを指定してブランチ作成
ブランチ移動
git checkout git checkout -b [name] // ブランチの作成と移動を同時にやる
コミット移動
git reset // 指定のコミットまで戻る。作業ファイルはそのまま git reset --hard // 作業ファイルの変更も元に戻る。注意!!
リモートリポジトリを追加
git remote add origin [url]
リモートリポジトリを確認
$ git remote -v
変更をプッシュしたい
git push origin master // originというリモートリポジトリのmasterというブランチにプッシュ
git pushで毎回パラメータを指定するのが面倒
-u
を指定すると、ローカルブランチがリモートブランチにリンクされます。次回以降は引数なしでgit push
を実行できます。
git push -u origin master
リモートの更新を確認したい
git fetch // 更新情報を取得(ファイルは更新しない)
リモートの更新をマージしたい
git merge origin/master // 更新をマージ。この例ではoriginが指すリポジトリのmasterブランチをマージ。
二つのcommit間の差分を出力したい
git diff <コミットハッシュ1> <コミットハッシュ2>
コミットのログを見たい
git log git log -p // ENTERを連続で押す、またはQで抜ける
コミットのログをグラフィカルに見たい
git log --graph
ローカルの単一ファイルの変更を元に戻したい
git checkout some_filename
トラブルシュート
コミットメッセージを間違えてしまった
クローンしたらdevelopブランチがない
で、git branchすればわかるんだけど、このままだとmasterブランチしかローカルにcloneできてない。別のブランチ(developmentとする)もローカルにcloneしたい。
git checkout -b development origin/development
git configの変更が反映されない
globalよりもlocalのエントリが優先されます。
git config --global user.name John git config --list | grep user.name user.name=Thomas
--show-origin
でエントリのoriginを確認します。
git config --list --show-origin | grep user.name file:C:/Users/xxx/.gitconfig user.name=John file:.git/config user.name=Thomas // localが優先される
globalのエントリを反映させたいなら、localのエントリを削除します。
git config --unset user.name git config --list | grep user.name user.name=John