1. ホーム
  2. git

[解決済み] gitブランチをオリジンバージョンにリセットする必要がある

2022-03-17 12:48:36

質問

あるブランチでしばらく作業していたので、適当な名前をつけてそこからブランチしました。 今、そのブランチをオリジン(github)のバージョンに上書きしたいのです。 これを行うための簡単な方法はありますか? ブランチを削除して追跡ブランチをリセットしてみましたが、私が作業していたバージョンが再び表示されるだけです。

解決方法は?

まだ origin にプッシュしていない場合は、ブランチをリセットして アップストリーム というブランチを作成します。

git checkout mybranch
git reset --hard origin/mybranch

(質問にあるように、最新のコミットを別のブランチで参照していることを確認してください)

なお、リセットの直後には mybranch@{1} は、リセット前の古いコミットを参照しています。

しかし、すでにプッシュしていた場合は、" を参照してください。 gitブランチを作成し、元の状態を上流に戻す 他のオプションについては、" を参照してください。


Git 2.23(2019年8月) というのは、1つのコマンドになります。 git switch .
名付けて。 git switch -C mybranch origin/mybranch

C:\Users\vonc\git\git>git switch -C master origin/master
Reset branch 'master'
Branch 'master' set up to track remote branch 'master' from 'origin'.
Your branch is up to date with 'origin/master'.

これは、インデックスと作業ツリーをリストアする、まるで git reset --hard のようになります。


のコメントにもあるように ブラッド・ハーマン , a reset --hard となります。 新しいファイルを削除したり、変更されたファイルを HEAD にリセットする。 .

実は、quot;clean slate"からスタートすることを確認するために、? git clean -f -d をリセットした後、動作するツリーを確保することができます。 まさに は、リセットしたブランチと同じです。


この ブログ記事 は、これらのエイリアス ( master ブランチのみですが、それらを適応/拡張することができます)。

<ブロッククオート
[alias]
   resetorigin = !git fetch origin && git reset --hard origin/master && git clean -f -d
   resetupstream = !git fetch upstream && git reset --hard upstream/master && git clean -f -d

それから、タイプしてください。

git resetupstream

または

git resetorigin