2011-12-21 14 views
0

私はmasterブランチで作業していました。変更を元に戻す

私は & をコミット、その後、私のプロジェクトに多くの変更を行ったが、ことにより、リモートリポジトリへのすべての変更をプッシュ:次に

git push origin master 

、私は新しいブランチを作った、とする最新のコードをプッシュします

git branch new-branch 
git checkout new-branch 
git push origin new-branch 

私は今すぐnew-branchのように新しいブランチを作成します(リモートブランチにする)。さて、master & new-branchの両方が局部的に同じ最新のコード & リモートでを持っています。

私の質問は:

どのように私は両方のローカルおよびリモートマスターブランチに変更バックを元に戻すすることができます。 しかし、すべての変更をnew-branchに保存しますか?

答えて

1

マスターブランチに移動し、git revert HEADgit push origin masterを実行します。 これにより、元に戻すコミットを元に戻す新しいコミットが作成されます。

あなたはまた、行うことができgit reset --hard HEAD^(masterブランチ上)とgit push -f origin master-fはプッシュを強制する)、しかし、誰もがあなたがプッシュされた最新の変更を引っ張っている場合、それは彼らのために問題を引き起こします。

new-branchの変更は、これらの操作の影響を受けてはなりません。

0

あなたがそれをプッシュしているので、マスターにコミットし、マスターを押して、理想的な方法は、git revertに次のようになります。

git checkout master 
git revert HEAD 
git push origin master 

の上に新しいの復帰(変更を取り消し)であるコミットを作成します。前の

0

これは、あなたが既に新しいブランチに入っていることを前提としています。

git push . +master^:master 
git push origin +master 

これにより、マスターをチェックアウトしても、ローカルとリモートの両方でロールバックすることができます。

誰かがすでにマスターから取り組んでいる場合は注意してください。彼らは変更をプッシュしたい場合、他のコミットの上に変更をリベースする必要があります。

関連する問題