2017-07-08 21 views
0

私はソースツリーでbitbucketを使用しています。リモートブランチを以前のコミットにリベースしたいと思います。bitbucket rebase前のコミットのブランチ

リモートでマージされたローカルで行った変更がいくつかあります。リモートが動作していない状態です。私は前の状態に戻る簡単な操作をしたいと思います。リモートブランチでリベースすると、ローカルバージョンは正常に動作しますが、リモートバージョンはまだ間違った状態になっています。 Updates were rejected because the tip of your current branch is behind

マージが発生したため、私はリバースコミットできません。ボタンが無効になっているため、強制的に押し込むこともできません。

答えて

0

まず、バックアップレポジトリ:

は、それをコピーしてどこかに保存します。

第二に、チェックアウトリモートブランチ:

git checkout -b mybranch origin/mybranch -u 

あなたが戻って以前の状態に戻したい場合は、次の3つのオプションがあります。

1. Revert - git revert <previous_commit> 
2. Rebase - git rebase -i <previous_commit> 
3. Reset - git reset <previous_commit> 

オプション1を、それは新しいを作成するので、最も安全ですコミットは、現在のコミットを元に戻します。

オプション2は、以前のコミットから対話的にリベースして履歴を書き換えます。新しい履歴に のコミットを選択することができます。

オプション3は、ブランチHEADに前のコミットを指すように強制して履歴を書き直します(あたかも将来のコミットが起こらなかったかのように)。あなたはファイルのチェックアウトした場合は、--hardオプションでこれを実行する必要があるかもしれません(自分の仕事を失わないように注意してください!)を

オプション2およびオプション3歴史を再書き込みするので、あなたがそのあなたのチーム世話をする必要があります変更が通知されます。彼らは最新のブランチを強制的に取得する必要があります(またはソースからリポジトリを再クローンするだけです)。ページを変更した、あなたが満足したら、リモートブランチに変更をプッシュ:

git push origin mybranch --force 

それとも単に

git push --force 

上流分岐はセットアップが既に存在するため。

+0

詳細な対応をありがとうございます! – user3032887

関連する問題