Git まとめ

初期設定

~/.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{数字}