3

私は bitbucket にリモート git リポジトリを持っています (これは非公開なので、ここでリンクを共有することはできません)...そこにいくつかのブランチがあり、そのうちの 2 つは次のとおりです。

  • 主人
  • cert_creation

昨日、私は *cert_creation* ブランチにいて、

git add --all
git commit -m "changes blabla"
git push origin cert_creation

...そして、すべてがうまく見えました。Bitbucket Web サイトで最新のコミットを調べたところ、すべての変更が保存されているように見えました。

しかし、今日、ローカル コンピューターでいくつかのファイルを開いたときに、それらが最新ではないと思いました。

そのため、ローカル マシン上のすべての変更を最新のリモート コミット (正しいとわかっていた) に戻したいと考えました。ローカルの git リポジトリを最新のリモート コミットに戻すためにグーグル検索しました。これらのコマンドを使用しました:

git reset HEAD --hard
git clean -fd
git fetch origin
git reset --hard origin/master

(および機能しなかった他のいくつか)。今の問題は、私がすべてをさらに台無しにしてしまったことです。現在、ローカル マシンに非常に古い git コミットがあります (これは、前回 cert_creation を master にマージしたときのものです)。

ここで問題は、「元に戻す」方法、つまり、ローカルの git リポジトリを最後のリモート コミットに更新する方法です。おそらく、これはすでにインターネットのどこかで 100 回質問されていますが、正しいキーワードを見つけることができません :[] そして、すでに何かを台無しにしてしまったので、正しいことを確実に行いたいと思っています。

事前にご回答いただきありがとうございます。本当にありがとうございました。

4

2 に答える 2

6

さて、私は今それを行う方法を考え出しました...私の場合、ローカル ブランチ cert_creation を bitbucket からのリモート ブランチ cert_creation で完全に上書きしたかったのです。

これを行うには、現在どのブランチにいるかを確認します。

git branch

現在 cert_creation にいるときは、そこを離れて master (または他のブランチ) に移動する必要があります。

git checkout master

ここで、めちゃくちゃになったブランチをローカルで削除します。

 git branch -d cert_creation

...正しいリモート ブランチに関する情報を取得します。

git fetch origin cert_creation

...そして最後に、リモート ブランチに基づいてローカル ブランチを再構築します。

git checkout -b cert_creation origin/cert_creation 

また、スタックオーバーフローに関する他の質問に対するこの回答に感謝します。これは、これを理解するのに役立ちました!

于 2013-09-26T18:20:55.850 に答える