【まとめ】結局、gitってコマンドなにを使えばいいの?(都度、更新中)
頻度が少ないコマンドだと、毎回調べては違う記事へ行き付き、何が正しいか確信を持てなくなってくきたので、備忘録とする。
取り扱うもの
gitについて (都度、記事更新中)
コマンドのエイリアス、オプションなど
[alias] br = branch ca = commit --amend can = commit --all --amend --no-edit ci = commit co = checkout cp = cherry-pick fe = -c diff.mnemonicprefix=false -c core.quotepath=false fetch --prune origin hard = reset --hard ll = log --graph --decorate --oneline --abbrev-commit p = push origin HEAD pop = stash pop pr = pull --rebase upstream soft = reset --soft st = status [filter "lfs"] clean = git-lfs clean -- %f smudge = git-lfs smudge -- %f process = git-lfs filter-process required = true
[git commit] -a , --all # 変更済みファイルをコミットする -m, --message # コミットメッセージ指定
①Pushまでの流れ
branchを切り、機能追加したあと・・・
とりあえず、修正したらコミットする
git commit -am "update"
// あとで、まとめるのでupdateという名称でもよいブランチを最新に保つ
git pull --rebase origin master
リモートへプッシュする
git push
// VSCodeのボタンぽちぽちしてる・・・
コミットを1つにまとめたいとき
「ブランチを最新に保つ」前に・・・
HEADが戻る先を確認する
git reflog
HEADをNコミットまで戻す
git reset --soft HEAD@{N}
ステージングされている変更を1つ前のコミットへ追加する
git can
直前のコミットへ修正ファイルを追加したいとき
対象ファイルをステージングする
git add fileName
直前のコミットを修正する(追加)
git commit --amend --no-edit
--no-edit
は、コメント修正なし
②GitHubでMerge、ブランチ削除されたあとの流れ
ローカルでもMergeされたブランチを削除したい・・・
- github上でMergeされる
リモートブランチを同期する
git fetch -p
// リモートで削除されたブランチを削除してfetchローカルブランチを強制削除する
git branch -D branchName
誤って違うブランチを削除したとき
削除前にHEADを戻す
git reflog
で戻す
③ コンフリクトしてしまった場合
git pull --rebase
したときなど・・・
コンフリクト前に戻すケース
元に戻す
git rebase --abort
orgit reset -hard HEAD
コンフリクト解消するフロー
- コンフリクト箇所を修正する
- 修正内容の差分有無によって、次を作業する
- 差分ありのとき、そのファイルをコミットする
- 差分なしのとき、コミットは必要ない
全コンフリクト解消を確認する
git status
項2の作業によって、次を作業する
- 項2でコミットした場合、
git rebase --continue
- 項2でコミットしない場合、
git rebase --skip
※
git rebase --continue
しても意味なし- 項2でコミットした場合、
コンフリクト解消後、リモートへプッシュするとき
コンフリクト解消したあとで・・・
強制プッシュする
git push -f
安易にpush -f
せず、ブランチ共同利用者へ承諾を得ること
④ squash meargeが原因でコンフリクトした場合
githubでsquash meargeされると、コンフリクトするが・・・
ブランチを切った元のコミットまで戻って、コミットを1つにまとめる
git reset --soft HEAD@{N}
新しいブランチをorigin/masterをブランチ元として発行する
1つにまとめたコミットIDを確認する
git log -oneline
// コミットIDが見やすい表示とする新しいブランチ上で、古いブランチから1つにまとめたコミットを適用する
git cherry-pick "commit_ID"
// 調べたコミットIDを入力する
⑤修正内容を一時退避する場合
修正中の内容をコミットせずに退避して、別のブランチへ移動したいときなど。
修正内容を一時退避する
git stash
またはgit stash save "コメント"
退避内容を確認する
git stash list
ブランチ移動など、退避後に実施する内容を行う
現在のブランチに、退避内容を適用する
git stash apply stash@{N}
// 退避内容を適用するのみgit stash pop stash@{N}
// 退避内容を適用後、削除する※Nは、項2で確認した番号
退避内容を削除する
git stash drop stash@{N}
※Nは、項2で確認した番号
⑥タグ
タグ一覧
git tag
タグ詳細
git show <タグ名>
タグ追加
タグ付けしたいブランチへ移動したあと
git tag <タグ名>
タグをリモートへPUSH
git push origin <タグ名>
PUSH後、同タグは修正しない。新しいタグを付け直す。