普段よく使う git コマンドを随時記載していく。
git コマンド Tips
git コマンドのエイリアス設定
毎回長いコマンドを打つのは面倒なので、エイリアスの設定を以下に記載。
- git自体のエイリアスを設定
https://gist.github.com/shintarou-akao/078d12928b282125224cfe9e48b039a7 - gitコマンドのエイリアスを設定
https://gist.github.com/shintarou-akao/6bc632b421a115d27fc8af87441650b4
開発時によく使う git コマンド
作業時にレビュー依頼が入った場合
# 作業途中のコードを一時退避(uオプション:untracked fileも含めて退避)
git stash -u
# リモートリポジトリの最新情報をローカルリポジトリに持ってくる
git fetch --prune
# ブランチ切り替え(switchではなく、checkoutでも可)
git switch ブランチ名
# レビュー後、作業していたブランチ(一つ前のブランチ)に戻る
git switch -
# 退避させていたコードを戻す
git stash pop
gitで管理したくないファイルやフォルダをpushしてしまった場合
# cachedオプションをつけることにより、ファイルを残したまま管理対象から外すことができる(フォルダの場合はrオプションが必要)
git rm -r --cached .vscode
echo '.vscode/' >> .gitignore
コンフリクトを解消するために色々変更とかしたけど、編集内容もマージも取り消したい場合
git reset --hard HEAD~
間違ってresetしてしまったのでreset前の状態に戻したい場合
# ORIG_HEAD:resetを実行する直前のcommit
git reset --hard ORIG_HEAD
直前にpushしたcommitメッセージを修正したい場合
git rebase -i Head~
# ↑変更したいコミットの先頭文字pickをeditに変更し保存
git commit --amend -m "commit message"
git log --oneline
git push --force-with-lease origin ブランチ名
作業内容やcommitを取り消したい場合
# commitだけ取り消したい
git reset --soft HEAD~
# add・commitを取り消したい
git reset --mixed HEAD~
# 変更箇所・add・commitも全て取り消したい
git reset --hard HEAD~
リリース時によく使う git コマンド
対象ブランチの最新の tag 名を確認 → 新しい軽量版の tag(v1.2.0)をつける → リモートへ push
git describe --tags --abbrev=0
git tag v1.2.0
git push origin v1.2.0
前回の tag(v1.1.0)と新しくつけた tag(v1.2.0)のファイルの差分が正しいか確認する
git diff --name-only v1.1.0 v1.2.0
タグのバージョンを間違えてしまった場合、正しいバージョン名のタグを追加した後、ローカルとリモートのタグを削除する。
ただ、下記記事によると push した tag 名は削除・変更してはいけないとのこと
【git tag】プッシュしたtag名を削除・変更してはいけない理由〜manコマンドで読めるgitメンテナの怒り〜
# 正しい名前でタグを追加
git tag v1.2.1 v1.2.0
# ローカルのタグを削除する
git tag -d v1.2.0
# リモートのタグを一覧で確認する
git ls-remote --tags
# リモートのタグを削除する(「git push origin :タグ名」でも可)
git push origin --delete v1.2.0
# リモートのタグ一覧から指定したタグが削除できているか確認
git ls-remote --tags
その他
# 特定のタグを検索する
git tag -l "v1.*"
# 特定のタグ情報を確認する
git tag show v1.1.0
Git・GitHub関連のおすすめUdemy講座
Git関連のおすすめ書籍
リンク
コメント