2017-09-21 3 views
1

私は2つの枝:branch_abranch_bを持っています。 branch_bのすべての変更/コミットをbranch_aにしたい。また、以前のコミット/状態branch_aを削除します。枝をコピーする正しい方法 - git

  1. git checkout branch_agit reset --hard branch_b
  2. git branch -D branch_agit checkout -b branch_a branch_b

どのオプションが良いとする理由である:

私は2つの選択肢がありますか?または、ブランチをコピーするためのよりよい方法はありますか? 注:私はちょうどbranch_abranch_bのコピーにします。

+0

私はあなたが 'branch_a'を削除しているので、コピーするためにそれを使用しようとする前に、あなたの2番目のオプションがうまくいくか確かめていません。この削除手順以外は、どちらも非常に似ています。また、 'sync'の使用はIMOを誤用しています。私は、同期は、引っ張って押し込むという状況で使用すべきだと思います。 –

+0

@TimBiegeleisen第2の方法も機能します。最初に 'branch_a'を削除し、' branch_b'が指すコミットでそれを再作成します。 – mkrieger1

答えて

1

2つのオプションは、同じコミットを指しているbranch_abranch_b(どちらもすでに先に指摘されています)を指しています。

唯一の違いは、resetブランチラベルの場合、このアクションはそのreflogに記録されますが、削除してから再作成すると、以前のreflogのbranch_aは失われます。

関連する問題