Git のブランチはとてつもなく安価です。エクストラを作成することはめったにありません。人々はそれらを作成する義務があると感じるべきではありませんが、それは彼らのデフォルトであるべきであり、些細なことであることが判明したものを作成したことをばかげていると感じるべきではありません.
コミットを公開 (プッシュ、または他のユーザーによるフェッチを許可) していない限り、コミットをブランチに「移動」できることに注意してください。たとえば、最初にこれがあるとします。
...--A--B--C <-- HEAD -> master, origin/master
次に、最初にブランチを作成せずに何かを修正します。新しいコミットを行いますD
:
...--A--B--C <-- origin/master
\
D <-- HEAD -> master
しかし、これでは不十分であるか、間違った修正であることがわかり、これを branch にする必要があると判断しますfix-xxx
。を指し示す新しいブランチ ラベルを追加するだけでD
(例: を使用)、コミットに戻るようにbranch fix-xxx master
設定します(例:まだ今もオンになっているため)。master
C
git reset --hard HEAD~1
master
...--A--B--C <-- HEAD -> master, origin/master
\
D <-- fix-xxx
これで、git checkout fix-xxx
コミットを作業ツリーに戻し、次を指すようにD
設定できます。HEAD
fix-xxx
...--A--B--C <-- master, origin/master
\
D <-- HEAD -> fix-xxx
fix-xxx
最初に作成してからコミットしたように見えますD
。
言い換えれば、これは両方の方法で機能します: 可能な限りフリーに近いブランチを自由に作成してください。ただし、ブランチを作成せずにコミットを「移動」してください (ここでは実際には何も移動していません。単にシャッフルしただけです)。ブランチ ラベル!) 代わりに後で。プログラマーは、自分の都合に合わせて何でもできます。
最初にブランチを作成し、後でそれを必要としないことの大きな利点は、最初にブランチを作成せず、後で必要とするよりも作業が少ないことです。また、このステップは厄介なほど危険です (最初に作業ツリーがクリーンであることを確認する必要があります)。git reset --hard