Gitの支店は非常に安いです。エクストラを作成することはめったにありません。人々はそれらを作る義務を感じるべきではありませんが、それはデフォルトでなければならず、自明ではないと判明したものを作ったために愚かではありません。
コミットをブランチに「移動」することは可能ですが、発行していない(他の人がそれをフェッチできるようにしている)限り、可能です。たとえば、最初にこれを持っているとします。
次に、最初にブランチを作成せずに何かを修正します。あなたはD
をコミット新しいます
...--A--B--C <-- origin/master
\
D <-- HEAD -> master
が、その後、あなたはこれが十分でない、または間違った修正で、これはブランチfix-xxx
あるべきかを決定発見します。
...--A--B--C <-- HEAD -> master, origin/master
\
D <-- fix-xxx
を:ちょうど与えて、(あなたが今master
に残っているので、例えば、git reset --hard HEAD~1
を使用して)C
をコミットするために戻って指すようにmaster
を設定し、その後、(例えば、branch fix-xxx master
を使用して)D
を指し示す新しいブランチラベルを追加今、あなたはgit checkout fix-xxx
置くために戻って作業ツリー内とfix-xxx
を指すようにHEAD
を設定D
をコミットすることができます:あなたはを作成したかのように
...--A--B--C <-- master, origin/master
\
D <-- HEAD -> fix-xxx
、それすべてが見えます最初にを呼び出し、コミットをD
にしました。
つまり、これは両方とも両方の方法で動作します。可能な限りフリーに近いブランチを自由に作成できますが、それらを作成せずにコミットを移動することができます。ちょうど周りの枝ラベルをシャッフルしただけです!)。プログラマーは、彼らのために何でもできます。
最初の分岐を作り、その後、後でそれを必要としないの大きな利点は、これが最初の分岐を作り、その後、後でそれを必要としないより少ない仕事であるということです。また、git reset --hard
の手順は大変危険です(最初に作業ツリーがきれいであることを確認する必要があります)。
私はそれがあなたのチームの設定に依存しますね。ローカルのコンピュータに1つの中央リポジトリをクローンしている場合、コードレビューとバックアップの目的で、自分の機能に分岐する必要があります。すべてが独自の中央クローン(github forksのようなもの)を持っていれば、コードレビューを行う独自の中央リポジトリにすべてを押し入れることができるので、大きなメリットはありません。 –