コンテンツにスキップ

よく使うGitコマンド

開発ブランチの最新の変更を取り込む場合:

Terminal window
# developブランチの最新を取り込む
git rebase develop
# コンフリクトが発生した場合
git add .
git rebase --continue
# リベース完了後、強制プッシュ
git push origin feature/#211-hoge -f
Terminal window
# 1. 現在の作業を保存
git stash
# 2. developブランチを最新に更新
git checkout develop
git pull origin develop
# 3. 作業ブランチに戻ってリベース
git checkout feature/#211-hoge
git rebase develop
# 4. 保存した作業を戻す
git stash pop

コミット内容を残して取り消す(推奨)

Section titled “コミット内容を残して取り消す(推奨)”
Terminal window
# 直前のコミットを取り消し(変更内容はステージングに残る)
git reset --soft HEAD^

コミットと変更内容を取り消す

Section titled “コミットと変更内容を取り消す”
Terminal window
# 直前のコミットと変更内容を取り消し(危険)
git reset --hard HEAD^
Terminal window
# 直前のコミットメッセージを修正
git commit --amend -m "新しいコミットメッセージ"

一時的に変更を退避させる場合:

Terminal window
# 現在の変更を退避
git stash
# メッセージ付きで退避
git stash save "作業中の機能"
# 退避した変更の一覧
git stash list
# 最新の退避を適用(退避リストから削除)
git stash pop
# 特定の退避を適用
git stash pop stash@{0}
Terminal window
# 退避を適用するが、リストには残す
git stash apply stash@{0}
# 特定の退避を削除
git stash drop stash@{0}
# すべての退避を削除
git stash clear
# 退避の内容を確認
git stash show -p stash@{0}
Terminal window
# ブランチ作成と切り替えを同時に
git checkout -b feature/new-feature
# リモートブランチを追跡
git checkout -b feature/remote-feature origin/feature/remote-feature
# ブランチ名を変更
git branch -m old-name new-name
Terminal window
# 簡潔な履歴表示
git log --oneline -10
# グラフ表示
git log --graph --oneline --all
# 特定ファイルの変更履歴
git log -p path/to/file
Terminal window
# ステージングされていない変更を確認
git diff
# ステージングされた変更を確認
git diff --staged
# 特定のコミット間の差分
git diff commit1..commit2
Terminal window
# リモートブランチを削除
git push origin --delete branch-name
# すべてのリモートブランチを取得
git fetch --all
# リモートの情報を確認
git remote -v
Terminal window
# 特定のコミットまで戻す(履歴を書き換える)
git reset --hard <commit-hash>
# 強制プッシュ(チーム開発では要相談)
git push --force-with-lease origin branch-name
# ファイルをGit管理から除外(ファイル自体は残る)
git rm --cached file-name
Terminal window
# コンフリクトしているファイルを確認
git status
# コンフリクトを解決後
git add <resolved-file>
git commit
Terminal window
# 特定のファイルを前のコミットから除外
git reset HEAD^ path/to/file
git commit --amend
Terminal window
# リベース作業を中止して元の状態に戻す
git rebase --abort