その他

Githubの過去の時点のプロジェクトをローカルに持ってくる方法

ローカルで保存していたはずのバージョンが、うまく取得できなかった時に使った方法です。まだ慣れておらず、時間がかかったので記録しておきます。

大まかな流れとしては、
①Githubで「現在の時点の」該当プロジェクトをクローンする
②クローンしたものを過去の時点に戻す
です。

①Githubで「現在の時点の」該当プロジェクトをクローンする

Githubの「Your repositories」
→クローンしたいレポジトリを選択。

画像の緑色の「Code」→HTTPSの下に表示されているアドレスをコピーする。

Git Bashでの操作

クローンしたいフォルダの場所のパスを取得。パスは、フォルダを右クリックして「パスのコピー」を選択したらOK。

Git Bashにて「cd ~~」で~~のところにパスを入れて移動。

次に「git clone https://github.com/…」、アドレスのところは先ほど取得したURL。これを実行することで、ローカルにクローンすることができました。

②クローンしたものを過去の時点に戻す

次はクローンしたフォルダのパスをコピーし、Git Bashにて「cd ~~」で該当フォルダに移動。

Githubの画面に戻り、先ほどの「code」の下にある「commits」を選択。

戻りたい時点のコミットの、右の方にあるコピーマーク、「Copy full SHA for ~~」を取得。

Git Bashにて「git checkout ~~」、~~は先ほどの取得したSHAを入力。

これで過去の時点のバージョンに戻ることができました。

追記:過去のバージョンに戻ったものを、最新版にしたい場合

revertしてもうまくいかない…。でも、上記の方法で前のバージョンには戻ることができる…。といった、よく分からない状態になり、結局以下の方法を試しました。

新しいブランチを作って、checkoutする

masterを右クリックして、新しいブランチを作成。

Git Bashで「git checkout 新しいブランチ名」のコマンドを打つ。

コミットをリセットする

「git reset –hard ~~」~~はSHA。

chatCPTさんによると、「–hard オプションは、変更を完全に破棄し、指定されたコミットまでリセットします。これにより、新しいファイルも元のコミットの状態になります。ただし、このコマンドは履歴を書き換えるため、他の開発者と共有している場合は慎重に使用してください。」とのこと。

個人でやっている分には、ブランチ切っているし、大丈夫だと思います。

新しいブランチをmasterにする

https://salumarine.com/make-a-branch-master-in-git/

上記のホームページを参考にさせていただきました。

ーーーーーーーーーー以下抜粋ーーーーーーーーーー

とあるブランチをmasterブランチにする方法
とあるブランチをmasterブランチにするにのは次のようにgitコマンドを実行することで可能です。

git checkout [とあるブランチ]
git merge -s ours master
git checkout master
git merge [とあるブランチ]

ーーーーーーーーーー以上抜粋ーーーーーーーーーーー

vimの使い方がいまいち分かっていなくて、

git merge -s ours masterをした時に何かメッセージを入力しないといけないっぽいのですが、できずキャンセルをしたら、mergeできました…

ここまでやって、やっとmasterを過去に完全に戻すことができました。

いろいろ、よく分かっていないので、自己責任でお願いします!