はじめに
タイトルまんまですが、既にあるブランチを手元で動かしたいときはよくやる操作です。
特にファイルだけのほうが忘れてしまうことが多いのでメモ。
アジェンダ
- チェックアウトする前に必要な操作(後述の2,3共用)
- リモートのブランチを確認したり
- リモートのブランチをチェックアウトする
- リモートのブランチからファイルのみチェックアウトする
1. チェックアウトする前に必要な操作(後述の2,3共用)
リモートのブランチを持ってくるにせよ、ファイルをもってくるにせよブランチ名を確認したいですよね。
リモートのブランチを確認したり
# ローカルのリポジトリ情報を更新 $ git fetch # ブランチが多過ぎて遅い場合は特定のブランチだけfetch $ git fetch origin [取得したいブランチ名] # 目的のブランチが含まれてるか確認 git branch -r | grep [取得したいブランチ名]
補足
リモートや追跡ブランチの確認については下記も参考に
2. リモートのブランチをチェックアウトする
コマンド
リモートのブランチ持ってくるコマンドはこんな感じ
git checkout -b [取得したいブランチ名] origin/[取得したいブランチ名]
一連のコマンド例
1. チェックアウトする前に必要な操作(後述の2,3共用)
とかぶるけど一連って意味で1のコマンドも書いておきます
# 更新&確認 $ git fetch $ git branch -r | grep [取得したいブランチ名] # ローカルにブランチもってくる $ git checkout -b [取得したいブランチ名] origin/[取得したいブランチ名]
3. リモートのブランチからファイルのみチェックアウトする
コマンド
リモートのブランチのファイルのみ持ってくるコマンドはこんな感じ
git checkout [取得したいリモートブランチ名] -- [取得したいファイルパス]
取得したいファイルパスについては、ちょっと癖があったので後述します。
一連のコマンド例
# 更新&確認 $ git fetch $ git branch -r | grep [取得したいブランチ名] # 取得したいブランチの取得したいファイルの内容を確認 # ※ 具体的に何を指定するかは後述します git show origin/[取得したいブランチ名]:[取得したいファイルパス①] # ファイルのみチェックアウト $ git checkout origin/[取得したいブランチ名] -- [取得したいファイルパス②]
[取得したいファイルパス]についての補足
①②としているくらいなので若干指定するパスが違っています。
こんな感じ
[取得したいファイルパス①]
git show
で確認したいときの[取得したいファイルパス①]
は、リポジトリのルートからのパス[取得したいファイルパス②]
- チェックアウトするときの
[取得したいファイルパス②]
は、現在いるディレクトリからの相対指定のパス
まとめ
たまにしかやらない操作ってどうしても忘れちゃいますよね(><)