2012-03-12 4 views
0

私のワークフローは次のとおりです。開発のメインブランチがあり、常に渡しテストが必要です。その後でそれ用のリモート追跡ブランチを作成以下のシナリオでgit rebaseをより効果的に使用する方法

git checkout -b feature_name 

:機能で作業する場合、私はこのチケットで動作するように新しいブランチ作成

git push -u origin feature_name 

をそれから私は、このブランチにコミットし続けます時々私はこれと一緒に開発するから統合する:

git checkout develop; git pull; git checkout feature_branch; git merge develop 

開発ブランチからブランチが更新され続けるようにする。

私が行っています、私が開発し、プッシュするには、このブランチをマージ:

git checkout develop; git pull; git merge feature_branch; git push 

これは、マージするためのgitプル戦略を使用しています。しかし、私が上記のことをすると、時には私のコミットが一番上に、時には他の場所に散在しているので、私が何をしたのか分かりません。私は上記のscanarioでrebaseを使う方法を知りたいので、私のコミットの履歴が上に表示されます。

答えて

1

git merge developからgit rebase developに変更してください。 3行目の

1

git rebase origin/develop

と終了

git checkout develop; git pull; git rebase feature_branch; git push;

ノートでのワークフローを変更する:あなたは、リモートリベースしていない場合リベースは問題なく動作しますコミットします。あなたは遠隔の歴史を変えたくありませんか?

+0

私はリベースを一切使っていないので、リモートコミットをリベースしないでください! – umar

+0

あなたの答えによると、私のワークフローでは、すべてのgit-mergeコマンドをgit-rebaseコマンドに置き換えています。 – umar

+0

あなたのプロジェクトのコピーを作り、 'git push'を使わずにこれらのコマンドを試してみてください。この場合、あなたはあなたのリモコンを台無しにしません。 (もし私が新しい、おそらくは破壊的な機能を試しているのであれば、これをいつもやっています。)リベースすれば、あなたの履歴はマージコミットがなくなるので、より洗練されたものになります。そして起源を再構築した場合、チェックアウト/プル/チェックアウト/マージする必要はありません。 – Vili

関連する問題