Git merge早送りと早送りのブランチマージを実行できません。任意のアイデアは、早送りマージを使用する場合と、早送りマージを使用しない場合はどちらですか?Git早送りVS早送りマージなし
答えて
--no-ff
オプションは、機能ブランチの明確な概念が必要な場合に便利です。したがって、コミットが行われていなくても、FFが可能です。メインラインの各コミットを1つの機能に対応させることが必要な場合もあります。したがって、コミットの束を1つの単位としてフィーチャーブランチを扱い、それらを単一の単位としてマージします。 と機能ブランチマージを行うことは、あなたの歴史から明らかです。
このようなことを気にしなければ、おそらく可能な限りFFで逃げることができます。したがって、より多くのsvnのようなワークフロー感覚が得られます。
たとえば、このarticleの著者は--no-ff
オプションがデフォルトであるべきと考えていると彼の推論は、私が上に概説したものに近い。ここで、「機能」ブランチ上の軽微なコミットの一連の総称
を検討状況Git merge feature_branchをなしで実行すると、コミットオブジェクトのどれが機能を実装しているかをGitの履歴から見ることは不可能です。すべてのログメッセージを手動で読み取る必要があります。全体の機能(つまり、コミットのグループ)を元に戻すことは、真の頭痛[が使用されていない場合]ですが、フラグが使用された場合は簡単です忘れないで1つのコミット]。
ファストフォワードは、密接に関連したブランチのコレクションがあり、今すぐ一緒に移動したいときに最適です。すべてのマージが実際の履歴イベントであるわけではありません。 – Cascabel
なぜいくつかのブランチを維持するのはなぜですか?彼らが密接に関係しているなら、なぜ単一の支店ですべてをやってみませんか? –
密接に関連していても同じ意味ではありません。その上、ワークフローはいつもきちんとしているわけではありません。あなたはいつもあなたが行っていると思うコミットを行うとは限らず、必ずしも最良の場所から枝分かれするとは限りません。たぶん、ある場所からいくつかの機能を始め、そのうちの1つで作業を開始し、それが一般的であることを認識し、発散する前に他の機能を早送りすることがあります。 – Cascabel
これは、1つのコードはちょうど一日の終わりに置かれている機能ブランチをパーソナライズしているしたいことも可能です。これにより、より詳細な開発を追跡することが可能になります。
マスター開発を非正常なコードで汚染したくないので、--no-ffを実行するだけでよいでしょう。
パーソナライズされたブランチで作業コードをコミットする必要はないかもしれません。これは、他の誰も同じブランチで作業していない限り、履歴はgit rebase -i
に書き換えられ、サーバー上で強制的に実行されるためです。
私はプロジェクトでよく見られる例を挙げることができます。
ここで、--no-ff
(つまりtrue merge)は複数の親を持つ新しいコミットを作成し、より良い履歴追跡を提供します。そうでない場合は、--ff
(つまりfast-forward merge)がデフォルトです。
$ git checkout master
$ git checkout -b newFeature
$ ...
$ git commit -m 'work from day 1'
$ ...
$ git commit -m 'work from day 2'
$ ...
$ git commit -m 'finish the feature'
$ git checkout master
$ git merge --no-ff newFeature -m 'add new feature'
$ git log
// something like below
commit 'add new feature'
commit 'finish the feature' // => commit created at merge with proper message
commit 'work from day 2'
commit 'work from day 1'
$ gitk // => see details with graph
$ git checkout -b anotherFeature // => create a new branch (*)
$ ...
$ git commit -m 'work from day 3'
$ ...
$ git commit -m 'work from day 4'
$ ...
$ git commit -m 'finish another feature'
$ git checkout master
$ git merge anotherFeature // --ff is by default, message will be ignored
$ git log
// something like below
commit 'work from day 4'
commit 'work from day 3'
commit 'add new feature'
commit 'finish the feature'
commit ...
$ gitk // => see details with graph
(*)newFeature
分岐が再使用されている場合、代わりに新しいブランチを作成するのではなく、Gitはとにかく--no-ff
マージを行う必要があります、ここであることに注意してください。つまり、早送りマージは適格ではありません。
- 1. Aptana:早送りなしのGitマージ
- 2. Git早送りマージ:なぜ「fast」
- 3. git早送り1回コミット
- 4. AVAudioPlayerの早送りと早送り
- 5. 早送りリダイレクト
- 6. 早送り/早戻しのトラッキング
- 7. 早送りマージがgitで失敗する
- 8. Gitはデフォルトで早送りせずに
- 9. git rebase;早送りする方法
- 10. 早送り辞書辞典
- 11. Forループのデバッグ。早送り
- 12. 早送り/早送りgit/bzr:履歴の整合性をマークするファイルの重要性は何ですか?
- 13. gitは早送りから早送りまでの履歴を書き換えます
- 14. ActionScript3でサウンドを早送り、早送りすることは可能ですか?
- 15. Gitは早送りを拒否しました
- 16. Gitで同じヘッドで早送りせずにマージする最良の方法
- 17. RTMPストリーム早送り/巻き戻し
- 18. Javascriptビデオ巻き戻しと早送り
- 19. MP4早送り/巻き戻し
- 20. 早送りのinitから早く復帰する方法3
- 21. 早送りクイック・ニンブルにおけるbeforeAll
- 22. オーバーレイアイテムの早送りタップの処理
- 23. Python OpenCVビデオ録画早送り
- 24. T-SQL早送りカーソル対foreach
- 25. チェックアウトされていないブランチに非早送りgitマージを行う方法はありますか?
- 26. git pull --rebase upstreamとgit push originは早送りを拒否しますか?
- 27. 早送りでsegueを通して辞書を送信する
- 28. Git rebaseは早送りではないことを示します
- 29. 早送りHEAD更新の代わりにgit flow release finishをマージする理由
- 30. Git - すべてのトラッキングブランチを自動的に早送りします。
http://stackoverflow.com/questions/2850369/why-uses-git-fast-forward-merging-per-default/2850413#2850413ヘルプ? – VonC
私は別の本当に良い考え方がここにあると思うhttp://endoflineblog.com/gitflow-considered-harmful –
同じ質問? http://stackoverflow.com/questions/9069061/ –