tweeeetyのぶろぐ的めも

アウトプットが少なかったダメな自分をアウトプット<br>\(^o^)/

【git】リモートのブランチそのものや1ファイルのみをローカルにチェックアウトするメモ

はじめに

タイトルまんまですが、既にあるブランチを手元で動かしたいときはよくやる操作です。
特にファイルだけのほうが忘れてしまうことが多いのでメモ。

アジェンダ

  1. チェックアウトする前に必要な操作(後述の2,3共用)
    • リモートのブランチを確認したり
  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で確認したいときの[取得したいファイルパス①]は、リポジトリのルートからのパス
  • [取得したいファイルパス②]
    • チェックアウトするときの[取得したいファイルパス②]は、現在いるディレクトリからの相対指定のパス

まとめ

たまにしかやらない操作ってどうしても忘れちゃいますよね(><)