cheetsheet/git

オプション

説明 コマンド
mainブランチとの差分をマージ git fetch origin && git merge origin/master
現在の変更をスタッシュに保存 git stash
スタッシュされた変更のリストを表示 git stash list
最後にスタッシュした変更を再適用 git stash apply
スタッシュした変更を削除 git stash drop
git addしたステージングしたファイルのリストを解除 git reset
ローカルにcommitしたが編集状態に戻したい git reset –mixed HEAD^
最後にコミットした状態に戻す(編集内容は消える) git reset –hard HEAD
編集内容を消す git checkout HEAD – [ファイル名]
直近のログ、1個を確認 git -p -1
直前のコミットとその前のコミットとの間の差分を見たい git diff HEAD~1 HEAD

.gitignore

効果
*.log 全てのログファイルを無視
tmp/ tmpディレクトリを無視

外部レポジトリへのプルリクがマージされた後、自分のレポジトリを最新の状態にする

Upstreamリポジトリを追加(最初に1回だけ)

git remote add upstream [元のリポジトリのURL]

最新の状態をフェッチ

git fetch upstream

自分のローカルのmainブランチに切り替え

git checkout main

Upstreamのmainブランチをマージ

git merge upstream/main

自分のフォークしたリポジトリにプッシュ

git push origin main

レポジトリによってメールアドレスを変える

まずはデフォルトを設定

git config --global user.name "ユーザー名"
git config --global user.email メールアドレス

アドレスを変えたいレポジトリに移動してから

git config --local user.name "ユーザー名"
git config --local user.email メールアドレス

リモートのブランチをチェックアウトしたい

ローカルにはない( git branch だと見えない )が、リモートに存在するブランチで作業したい場合

git fetchgit
git branch -r
git checkout -b <ローカルブランチ名> origin/<リモートブランチ名>

ローカルを最新にしたい

1. リモートの作業ブランチ(例: origin/feature/foo)を最新に

git pull --rebase origin $(git rev-parse --abbrev-ref HEAD)

2. main(または develop)ブランチの最新も取り込みたい

git pull --rebase origin main

プルリクを作る

作業した事がないレポジトリ

git clone your-repository-url
cd repogitory-name
git checkout -b feature-x

作業した事がある(別のブランチにいる)

git fetch origin && git switch main && git pull --rebase origin main && git log

ログ確認後、下記を行い、作業用ブランチの作成

git checkout -b feature-x
プレフィックス 意味 用途例
feat: Feature(機能追加) 新しいAPIを追加、新機能を実装
fix: Bug Fix(バグ修正) ログインバグ修正、nullチェック追加
refactor: リファクタリング 動作は変えずに内部構造を整理
docs: ドキュメント変更 README修正、コード内コメント追加
style: コードのスタイル修正 フォーマッタ修正、インデント、空白など
test: テスト関連 単体テスト追加・修正
chore: 雑務(ビルド、CI設定、依存更新など) CI設定変更、npmパッケージ更新
perf: パフォーマンス改善 高速化、メモリ効率改善
build: ビルドシステム変更 webpack や make の設定変更など
ci: CI/CD関連 GitHub ActionsやCircleCIの修正
revert: 変更の取り消し revert: feat: add search bar
merge: マージ用(あまり使われないが手動でマージ時などに) merge: feature/login
  • ブランチで編集作業
  • git add .
  • git commit -m “Add feature x”
  • GitHubにブランチをプッシュ
    • git push origin feature-x

GitHubのリポジトリページにアクセスし、「Pull requests」タブをクリック。

その後、「New pull request」ボタンをクリックします。

base:ドロップダウンから、プルリクエストをマージしたいブランチ(通常はmainまたはmaster)を選択し、

compare:ドロップダウンから、先ほどプッシュしたブランチ(この例ではfeature-x)を選択します。

プルリクエストを作成する前に、「Create draft pull request」または「Draft」のオプションを選択して、プルリクエストをドラフトとしてマークします。

ドラフトプルリクエストは、レビュー準備が整うまで「Ready for review」ボタンをクリックするまで、マージされません。

レビュー前にプルリクのコミットをまとめたい

  1. git log で「現在のコミットを含めて何件のコミットをまとめるか確認」する
  2. 例えば3コミットをまとめる

数字で指定

git rebase -i HEAD~3

~の回数で指定( ~ が3つある )

git rebase -i HEAD~~~

まとめたい( squash )

上記の git rebase HEAD~~~ すると現在から遡ったコミットが列挙される

  1. pick とある部分を s or squashと書き直して保存
  2. コミットの文章を編集して保存
  3. まとめたコミットをPR向けに用意したブランチにpush
  • 過去の履歴を編集するのでforceが必要になる
git push --force-with-lease origin (git rev-parse --abbrev-ref HEAD)

–force-with-lease だと他の人が同じブランチで作業していないか(ローカルrefとリモートrefを比較、このコミットが最新になるか)をチェックしてくれる

リモートレポジトリ

origin とは別にリモートレポジトリを追加したい場合がある。

コマンド 効果
git remote add john http://dev.example.com/john.git 追加
git remote -v 確認
git push john test-branch_ push