HyunwookPark / question-box

2 stars 0 forks source link

git commitについて #36

Closed yoko-Developer closed 1 year ago

yoko-Developer commented 1 year ago

git commitで変更したところまでローカルに保存しておけるという認識ですが、cloneするとリモートmainの内容となるためローカルでcommitしていた内容が破棄されてしまうと思います。 commitしたところまで戻るにはどうしたら良いでしょうか。 Sourcetreeだと自分の作業ブランチ(commitしたファイル)が表示されますが、コマンドではどうしたら良いでしょう。 検索結果 見つけましたが、よく分からないので教えていただけますか。 $ git log //戻す対象のハッシュ値を調べる commit ************************

$ git reset --hard ハッシュ値 よろしくお願いいたします。

HyunwookPark commented 1 year ago

@yoko-newDeveloper

状況がちょっと見えないですね。

  1. ローカルでリポジトリを作成
  2. コミットして変更内容を残した
  3. リモートリポジトリをあとから作成
  4. クローンでリモートリポジトリをローカルリモートリポジトリに取得した(ローカルが壊れた)

その状態だとローカルリポジトリが存在しているので リモートリポジトリをクローンするときにエラーが出そうな気もしますが。 クローンできたということは階層のことなるフォルダに異なるリポジトリが存在しているようにも思いますね。 しかし、Sourcetreeだとコミットした状態が見えるとのことですしね。

私の仮説通りの状況であれば、 片方のリポジトリの.gitフォルダを削除することで解決できるかもです。

yoko-Developer commented 1 year ago

説明が下手ですみません。 先生の動画でもpushしないで、ここまでをcommitしておきましょうというシーンが複数回あります。 cloneすると(ローカルで)commitしたところには戻れないので、commit後にミスした場合にcommitまで戻るコマンドを知りたいと思います。

不具合というわけではないと思うのですが、単純に以前のcommitまで戻る方法が分かるといいなと思っています。

HyunwookPark commented 1 year ago

@yoko-newDeveloper

とりあえず戻りたいだけなのであればgit checkout コミットハッシュとかどうですか?

https://qiita.com/yt_andante_11/items/866e45d771b28cf05bf2

もしくはgit resetを使うのは? あとは、sourcetreeなどで特定のコミットを指定してブランチを作るのもいいですね。

yoko-Developer commented 1 year ago

git ligでコミットハッシュを探して、checkoutするんですね! 色々やり方はあるってことで、とても勉強になります。 ありがとうございます😀

HyunwookPark commented 1 year ago

私は最後に提案したブランチつくる方法をよく使っています。

yoko-Developer commented 1 year ago

ありがとうございます。 今度エラーになったときに新しいブランチ作るの挑戦してみます!