初期設定
~/.gitconfig
[user]
name = <userName>
email = <userMail>
[color]
ui = auto
[filter "lfs"]
process = git-lfs filter-process
required = true
clean = git-lfs clean -- %f
smudge = git-lfs smudge -- %f
[alias]
st = status
co = checkout
gr = grep
d = diff
cm = commit
b = branch
rs = reset
sb = submodule
f = fetch
エイリアスを設定しておくと便利です。
cherry-pick (特定のコミットを反映)
特定のコミットの修正を反映する。cherry-pick したコミット名で自動的にコミットされる。
git cherry-pick [コミット]
- -n … 自動コミットさせない(–no-commit)
rebase (過去のコミットを修正する)
指定したコミットまで遡って、ファイルの修正、コメントの修正などができる
git rebase -i [コミット]
- 修正したいコミットの一つ過去のコミットIDを指定する
- エディタが起動するので、修正したいコミットを
pick
からedit
に変更して保存
ファイルを修正するなどしたら、
git rebase --continue
で次のedit
にしたコミットに進む。無ければSuccessfully rebased and updated
と出力され rebase 完了。ただし、もしコンフリクトしていたら途中で rebase が止まり修正が必要になる。
checkout (特定のブランチ/ファイルに入る)
ブランチを切り替える
git checkout <ブランチ名>
ファイルを特定のコミットの時点のものにする
「このファイルだけこの時の状態に戻したい」という時に便利
git checkout <コミットID> <ファイル>
特定のコミットに入る
指定したコミットの時の状態を反映します。detatched HEAD という、ブランチとは切り離された状態になるため、この時は実験的な修正や一時的に確認したいときなどに留める。
git checkout <コミットID>
stash(修正内容をしまっておく)
stash … こっそり隠す、しまう
この意味合い通り、今の修正内容を一時的にしまっておき、好きなタイミングで取り出すことができます。
現在の修正内容をしまう
git stash
git stash save "コメント"
引数なしでも可能です。stash した内容は基本的にローカル内でのみ使うことができます。
しまっているものを確認する
git stash list
しまっておいた修正内容を取り出して反映する
git stash apply stash{数字}
stash したものはstash{数字}
で保存されています。stash の番号はgit stash list
で確認します。apply は反映させるコマンドですが、stash の内容は消さない限り保存したままです。
しまっておいたものを削除する
git stash drop stash{数字}