2017-02-17 14 views
1

Windows 10でSourceTree 1.9.10.0を使用していますが、私の機能ブランチEUR-1058をマスターにリベースすることはできません。私はこのようにそれを行う:SourceTree - 自動的にマージされたGit Rebase

これは、次のツリーになりenter image description here

enter image description here

そして、私が行う場合は自動マージを引くが起こる:

enter image description here

なぜこれが起こっていますか?それは私のラップトップにコミット "Mailcheck rewrite"があり、私のデスクトップとSHA-1ハッシュが何らかの形で変わったか何か類似しているからですか?あなたがmasterであなたのEUR-1058ブランチをリベースすると

+0

あなたの言語は混乱しています。 Rebase "on"はあなたが何をしているのではなく、特定のものです。 'master'に' feature'をリベースしようとしていますか、あるいはその逆ですか?自動マージでは、SourceTreeのプルのデフォルトがおそらくマージされるため、マージが得られます。 –

+0

@TimBiegeleisen EUR-1058 on master。 SourceTreeでは、タイトルに 'Rebase current changes to master'と書かれています – Ogglas

答えて

2

は、あなたは、そのブランチの歴史を書き直しました。次の手順を実行master手段に

master: ...A -- B ---- C -- D 
        \ 
EUR-1058:   E -- F 

リベースEUR-1058:ポイントを示す以下の図を考えてみましょう

  • 、この場合には、バックそれはmasterを分岐、そこからコミットへの分岐をロールはBをコミット
  • のコミットをBの上に再生します。この場合、再生コミットCD
  • 01私は E'のラベルが付いている

    master: ...A -- B ---- C -- D 
               \ 
    EUR-1058:      E' -- F' 
    

    注:は最終的に、Bをコミットするので、あなたがEUR-1058に行われたコミットを再適用、すなわちEF


がリベースした後、図はこのようになりますコミット

  • F'は、これらが実際にはrebase中に行われた新しいコミットであることを示します。

    は今、あなたはEUR-1058git pullを実行しようとしましたあなたの実際の質問に答えるために、Gitはまず、あなたのローカルブランチは、リモート(またはorigin/EUR-1058で)上にあるもので早送りできるかどうかチェック。この場合、早送りはできませんでした。 Gitは、現時点でリモートブランチがあなたがローカルに持っているものとまったく異なっているとみなします。したがって、マージコミットを行うことでプルを完了しました。あなたはおそらく行っているはずです何

    は経由リベースを完了した後、リモートにあなたのリベースEUR-1058ブランチをプッシュ強制することです:力を使用して

    git push --force EUR-1058 
    

    ブランチの歴史/ベースが変更されたため、ここでは必要です。これはマージコミットで終わったのと同じ理由です。力のプッシュ後、あなたは正常な生活を続けることができます。

    注意点として、EUR-1058の履歴を書き換えると、このブランチを共有するすべての人に問題が発生する可能性があります。だから、注意深く行うべきです。

  • 関連する問題