2017-10-13 18 views
1

複数のコミットこれらのコミットはすべてリモートにプッシュされています。例えば複数のコミットに戻す前に複数のコミットに戻す

現在、ヘッドがABCDEですが、私は戻って9kjhfaに行きたいです。 9kjhfaに戻す方法。 可能性の2つのシナリオが私のためにあります。ABCDEとaskdjf間のすべてのコミットを維持しながら

1)のいずれか、9kjhfaにABCDEから戻った後、しばらくした後、私はまた、ABCDEする9kjhfaから前方に行く

2) 9kjhfa

commit abcde    <-- current HEAD 
commit easlk 
    ... 
commit iwqeur 
    ... 
commit askdjf 
    ... 
commit 9kjhfa    <-- want to go back to this point 

git revert 9kjhfaに を働いていませんでしたABCDEまたはABCDEとaskdjf間のコミットを維持し、ちょうどから戻っていない私はstackoverflowの上で検索し、Googleが、それを行うための明確な方法を見つけることができませんでした。

+1

最もクリーンな方法は、これらのものを逆にするコミットを追加することです。これは最もクリーンで簡単な修正です。これらのコミットを削除するには、確実に強制プッシュを行うことができますが、短い回答は、レポの唯一のユーザーでない限りはありません。 –

+0

リセットする必要がありますが、元に戻す必要はありません – Alexan

答えて

0

あなたがリモートにリセットし、力のプッシュ操作を行うことができます。

git reset --hard <commit hash> 
git push -f <remote name> <branch name> 
0

私は、次の方法でそれをやった:

git checkout 9kjhfa 
git branch revert 
git checkout revert 
git push origin revert:master -f 

注:これは、あなたができない、gitの履歴からコミットを削除しますそれらを取り戻す。すべてのあなたのコミットされていない変更

git reset --hard <commit id here> 

を捨て--hardコミットされていない仕事、

を維持する必要がある場合は、あなたの変更を維持したい場合は

1

いけないソフト

git reset --soft <commit id here> 
を使用し、それを行います

リモートマスターブランチを復元する

git push <remote name> <branch name> -f 
関連する問題