しばらくの間、作業すべきではなかったブランチで誤って作業していたため、適切な名前を付けて分岐しました。今、作業すべきではなかったブランチを origin (github) のバージョンに上書きしたいと考えています。これを行う簡単な方法はありますか? ブランチを削除してから追跡ブランチをリセットしてみましたが、作業していたバージョンが再び表示されるだけです。
ベストアンサー1
まだオリジンにプッシュしていない場合は、ブランチをリセットして上流のブランチ:
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 は新しいファイルを削除するか、変更されたファイルを HEAD にリセットしreset --hard
ます。
実際には、確実に「白紙の状態」から始めるために、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