web-dev-qa-db-ja.com

すべてを以前のコミットにロールバックする方法

最近、複数の人が参加するプロジェクトで、下の画像に示すようにコミットが行われました。赤でマークすると、「マージ?」の説明/コメントでコミットが表示されます。

このコミットにより、多数のファイルが追加され、他の多数のファイルが変更され、実行されることはありませんでした。

atlassian-sourcetree を使用して、青で強調表示されたコミットにすべてをロールバックするにはどうすればよいですか? (スクリーンショットに見られるように、私は8コミット遅れています。)

sourcetree troubs

40
captainrad

コミットを上流にプッシュした場合...

Reverse FileReverse Hunk、またはReverse Selected Linesをクリックして、ロールバックして変更を元に戻すコミットを選択します。ロールバックしたいコミットの後のすべてのコミットに対してこれを行います。

reverse stuffreverse commit

コミットをアップストリームにプッシュしていない場合...

コミットを右クリックして、Reset current branch to this commitをクリックします。

reset branch to commit

59
0xcaff

特定のコミットにgitをリセットするために複数のオプションを検索しましたが、それらのほとんどはそれほど満足のいくものではありません。

通常、これを使用してgitをソースツリーの特定のコミットにリセットします。

  1. ソースツリーでリセットするコミットを選択します。

  2. ドロップダウンでアクティブなブランチを選択し、最初に親のみ

  3. [このコミットにブランチをリセット]を右クリックして、ハードリセットオプション(ソフト、混合、ハード)を選択します。

  4. そして、ターミナルgit Push -fに移動します

準備は万端です!

18