Visual Studio 2017の新しいブランチの段階的な変更をローカルリポジトリに誤ってプッシュしました。リモートリポジトリにプッシュされていません。私はそれを取り除きたいが、これを行う方法を見つけることができません。ローカルマスターブランチから新しいブランチにリベースしました。次に、新しいブランチを削除しました。しかし、発信コミットはまだそれを示しています。削除または元に戻す方法は?
Visual Studio 2017の新しいブランチの段階的な変更をローカルリポジトリに誤ってプッシュしました。リモートリポジトリにプッシュされていません。私はそれを取り除きたいが、これを行う方法を見つけることができません。ローカルマスターブランチから新しいブランチにリベースしました。次に、新しいブランチを削除しました。しかし、発信コミットはまだそれを示しています。削除または元に戻す方法は?
回答:
ブランチタイルからチームエクスプローラーの履歴タブを開きます(ブランチを右クリックします)。次に、履歴で、プッシュしたくないコミットの前のコミットを右クリックし、[リセット]を選択します。これにより、ブランチがそのコミットに戻り、行った余分なコミットが取り除かれます。したがって、特定のコミットの前にリセットするには、その親を選択する必要があります。
変更をどのように処理するかに応じて、hardを選択します。これにより、ローカルで変更が取り除かれます。または、コミットを取り消すが破棄されたコミットの変更を作業ディレクトリに残すソフトを選択します。
この問題を解決するのに役立つ適切な答えは1つも見つかりませんでした。
誤って変更をコミットしたブランチの名前がだとしますmaster
。次の4つの簡単なステップは、私にとって世界のように証明されました。
master
master
remotes/origin
revert
git reset --soft HEAD~
.slnフォルダーのcmdで使用
今日私はそれに直面していて、そのVSCode
ようなことを示唆する圧倒されましたが、兄貴Visual Studio
はそうではありません。
答えのほとんどは役に立ちました。以前に作成したコミットがさらにある場合、それらをすべて失うとイライラするでしょう。さらに、VSCode
それが0.5秒以内に行われる場合、それは複雑であってはなりません。
jessehouwingの答えだけが単純なソリューションに最も近いものでした。
Team Explorer
->に移動しSync
ます。そこにはすべてのコミットが表示されます。Actions
ドロップダウンを押して、Open Command Prompt
コマンドウィンドウが表示されるので、と書きgit reset --soft HEAD~
ます。複数の不要なコミットがある場合は、~
(つまりgit reset --soft HEAD~5
)の後に金額を追加します
(を使用していない場合はgit
、口語的な使い方を確認してください)。
私はそれが役に立てば幸いです、そしてうまくいけば次のバージョンでVSチームはそれを組み込みで追加するでしょう
[チームエクスプローラー]タブに移動し、[ブランチ]をクリックします。ブランチで、remotes / originからブランチを選択します。たとえば、マスターブランチをリセットするとします。remotes / originのマスターブランチを右クリックし、[リセット]を選択して[変更の削除]をクリックします。これにより、ローカルブランチがリセットされ、ローカルでコミットされたすべての変更が削除されます。
ローカルマスターブランチをリモート/オリジンマスターブランチにリベースして、プロセス内の競合を解決してください。
ここには、すべての送信コミットを破棄するか、特定のコミットを元に戻すかの2つのオプションがあります。
1-すべての送信コミットを破棄します。
すべての発信コミットを破棄するにはたとえば、リモートブランチからmasterという名前のローカルブランチがある場合、次のことができます。
1-ローカルブランチの名前をmasterから任意の名前に変更して、削除できるようにします。2-名前を変更したブランチを削除します。3-マスターから新しいブランチを作成する
これで、コミットなしの新しいブランチができました。
2-特定のコミット を元に戻す:特定のコミットを元に戻すには、不要なものを元に戻す必要があります。
1-不要なコミットをダブルクリックします。 不要なコミットをダブルクリックします 2-元に戻すをクリックします元に戻すを クリックします
ただし、元に戻されたコミットは、コミットの履歴にコミットが戻されたときに表示されます。