📑

<GitHub初心者>特定のGitコミットをローカルで取得する方法

に公開

特定のGitコミットをローカルで取得する方法

やっべ…
やっちまった…
まえのPush時にもどさなきゃ…

と思った時にこんな記事があったら楽だな~と思ったのでまとめ


1. 通常のクローン → 特定のコミットにチェックアウト

まずリポジトリ全体をクローンし、特定のコミットに切り替えます。

git clone https://github.com/user/repo.git
cd repo
git checkout abc1234

2. 履歴を制限した浅いクローン(--depth)

履歴を浅く制限したい場合、以下のようにクローンします。

git clone --depth 1 https://github.com/user/repo.git

※過去のコミットはこの方法では取得できません。


3. ブランチを限定してクローン(--single-branch)

あるブランチのみ取得したい場合はこちら:

git clone --branch main --single-branch https://github.com/user/repo.git

4. 特定のコミットのみ取得(高度な方法)

必要なコミットのみ取得するには、sparse-checkoutfetch も組み合わせる必要がありますが、基本は上記で十分です。


備考:
Gitは「履歴単位でのクローン」には対応していないため、git clone 後に git checkout を使うのが一般的です。

Discussion