概要
Git で使ったことのあるコマンドや説明などのメモです。
使用方法
リモートリポジトリをローカル環境に複製する
git clone
現在のディレクトリ内に指定したリモートリポジトリをローカル環境に複製するコマンドです。
- リポジトリの URL は基本的に SSH 接続用の URL を使用してください
git clone <リポジトリのURL>
一時的に変更を退避する
git stash
作業中の変更を一時的に保存(退避)して、作業ディレクトリをクリーンな状態に戻すコマンドです。
- 現在の変更を一旦退避して別の作業を始めたい場合などに使用します
- コメントは必須ではありませんが、後で内容を確認しやすくするために使用できます
git stash
-
コメントを付与する場合
git stash save "コメント"
-
スタッシュを戻す場合は、
git stash apply
またはgit stash pop
を使用します。
スタッシュを適用する
git stash apply
git stash
で退避した一時的な変更を適用するコマンドです。
- スタッシュした変更を適用しますが、スタッシュリストにはその変更が残ります
- 他のブランチにスタッシュ内容を適用したい場合や、スタッシュを複数回使用する場合に使用します
feature-a
ブランチで変更をスタッシュし、その内容を dev
ブランチに適用する場合:
git stash # `feature-a` でスタッシュを作成
git checkout dev # `dev` に切り替え
git stash apply # `dev` にスタッシュを適用
- スタッシュ(変更)の一覧は
git stash list
コマンドで確認できますgit stash list
git stash pop
スタッシュした一時的な変更を適用し、そのスタッシュをリストから削除するコマンドです。
- 現在のブランチにのみ使用することが多いです。
- スタッシュした変更を一度だけ適用したい場合や、スタッシュ内容が不要になった場合に使用します
- コンフリクト(衝突)が発生した場合は、手動で解決する必要があります
スタッシュを現在のブランチに適用して削除する:
git stash pop
追跡情報を更新する
git fetch
リモートブランチの最新の状態をローカルの追跡ブランチに反映するコマンドです。
-
pull
と違いブランチの追跡情報のみを更新するので、ローカルリポジトリの状態は変わりません
git fetch
git pull <リモートブランチ名>
指定したリモートブランチの最新の状態をローカルブランチに反映し、それに基づく変更をローカルリポジトリに対してマージするコマンドです。
- プルする前に、
git fetch
を実行し、リモートリポジトリの状態を確認してから実行してください - ローカルリポジトリの状態が変わる(マージされる)ので、プルを実行するときに
コンフリクト
が発生する場合がありますので、手動で解決する必要があります
git pull origin <リモートブランチ名>
誤って異なるブランチをプルしてしまった場合
誤って現在のブランチ名とは異なるブランチ名のものをプルしてしまった場合は、以下の手順で強制的に指定されたコミットの状態に巻き戻すことが出来ます。
-
git log
コマンドや VSCode の拡張機能のGitGraph
などで巻き戻したいコミット ID を調べます -
そのコミット ID をコピーなどで取得します
-
以下の
reset
コマンドで、そのコミット ID の状態に巻き戻しますgit reset --hard <コミットID>
-
git reset --hard
を行うと、そのブランチのローカルの変更全てが削除されるので、注意して使用してください- 重要な変更などがある場合、
stash
などで一時的に変更を保存するなどしてください
- 重要な変更などがある場合、
マージする
git merge <ブランチ名>
現在のブランチに指定したブランチの変更を統合するコマンドです。
- マージする前に、
git fetch
を実行して最新のリモートブランチを確認してから行ってください - マージ後も指定されたブランチはそのまま残り、他の作業を続けることができます
- コンフリクト(衝突)が発生した場合は、手動で解決する必要があります
git merge <変更を取り込みたいブランチ名>
変更をリモートに反映する
git push origin <ブランチ名>
ローカルリポジトリの変更をリモートリポジトリに反映(アップロード)するコマンドです。
git push origin <ローカルブランチ名>
- 例えば、現在のブランチが
dev
の場合、次のように入力してorigin
のdev
ブランチに反映させますgit push origin dev
初回のみ: git push -u origin <ブランチ名>
初回のプッシュ時に -u
オプションを使用することで、リモートブランチを追跡ブランチとして設定できます。設定後は、次回から単に git push
と入力するだけで同じリモートブランチにプッシュできるようになります。
git push -u origin <ブランチ名>
これを行うことで、次回からは
git push
と入力するだけで同じリモートブランチにプッシュできるようになります。