私は次のような状況があります:どのように私はSourceTreeを使用してwarning-fixes
上に(削除ProxyFinderを...)ステージングから最後のコミットrebase
できSourceTreeを使用して、指定したコミットを別のブランチにリベースする方法はありますか?
を?
一つの方法は、warning-fixes
にstaging
をマージしてからコミット以前にstaging
をリセットすることであろうが、それは厄介な回避策のように聞こえます。
私は次のような状況があります:どのように私はSourceTreeを使用してwarning-fixes
上に(削除ProxyFinderを...)ステージングから最後のコミットrebase
できSourceTreeを使用して、指定したコミットを別のブランチにリベースする方法はありますか?
を?
一つの方法は、warning-fixes
にstaging
をマージしてからコミット以前にstaging
をリセットすることであろうが、それは厄介な回避策のように聞こえます。
それを行うための最善の方法は、@ElpieKay's commentで述べたようになり、あなたの質問の最後に:コミットwarning-fixes
にstaging
をマージして、以前にstaging
をリセットします。
、コマンドラインからそれを行うために実行します。SourceTreeで
git checkout warning-fixes
git merge staging
git checkout staging
git reset --hard HEAD^
を:
warning-fixes
をダブルクリックします。staging
を右クリックします。Merge staging into current branch
をクリックします。staging
をダブルクリックして確認してください。origin/staging
は現在)。Reset current branch to this commit
をクリックします。rebase
を使用しない理由は、コミットを移動するだけでなく、ブランチポインタも移動するためです。この場合、staging
をwarning-fixes
にrebaseしようとすると、staging
の先端のコミットはすでにwarning-fixes
の先端と同じ親を持つので、何の効果もありません。
唯一の唯一の代替方法はcherry-pick
を使用することですが、これは(デフォルトでは)新しいコミッター日付でコミットを作成します。 (移動するコミットが複数ある場合は苦になります)
'チェリーピック'に関しては、重複したコミットに副作用があります。 – Antoniossss
@Antoniossss実際にはないでしょう:あなたが 'cherry-pick'をコミットすることは' warn-fixes'の終わりと同じ親を持っているので、Gitはコミットを再利用し、 'warning-fixes'をコミットします。 –
私の場合、チェリーを選んだのと同じ内容で余分なコミットを作成します...それはなぜですか? – Antoniossss
警告固定にステージングをマージするのも問題ありません。ステージングには何もしません。この場合、警告修正をステージングにリセットすることもできます。 – ElpieKay
しかし、それはrebaseで行うことができますか? - コミットとそのすべての子を別のブランチに移動して、変更が "合併可能"ならば – Antoniossss