2 つのブランチを維持しているとしdev
ますrelease
。
release
規律以外に、どのようにしてに変更を加えずにチェックアウトしないように強制しますdev
か?
Q1:するのを忘れて で変更を加えた場合、代わりrelease
に にコミットしてdev
で中止する方法はありrelease
ますか?
Q2:ブランチに設計されていない大量の変更を避けるために人々が使用する一般的なトリックはありますか?
2 つのブランチを維持しているとしdev
ますrelease
。
release
規律以外に、どのようにしてに変更を加えずにチェックアウトしないように強制しますdev
か?
Q1:するのを忘れて で変更を加えた場合、代わりrelease
に にコミットしてdev
で中止する方法はありrelease
ますか?
Q2:ブランチに設計されていない大量の変更を避けるために人々が使用する一般的なトリックはありますか?
Q1 : ええ、それはとても簡単です。間違ったブランチにコミットしたことに気付いた場合:
git checkout dev
git cherry-pick release # you may need to cherry-pick several commits
git checkout release && git reset --hard HEAD^ # or reset to wherever you want
Q2 : 私は git-completion に大きく依存しています:
https://github.com/git/git/blob/master/contrib/completion/git-completion.bash
これはあなたが探しているほど洗練された答えではありませんが、現在の git ブランチをプロンプトに入れることで、そこへの道の大部分が得られます。そこにはたくさんのレシピがありますが、これはいくつかの機能を備えた合理的なものに見えます.
また、私がどのようにそれを行うかを確認することもできます。
シェルに小さなスクリプトを追加して、自分がどのブランチにいるのかを常に表示します。ほとんどのテーマにこれが含まれているoh-my-zshを使用していますが、ここで説明されているような軽いオプションもいくつかあります。
このようにして、どのブランチに取り組んでいるかを知ることができ、通常は混乱しません。
すでにブランチにコミットしている場合は、 and を使用git rebase
しgit cherry-pick
て履歴を書き換え、他のブランチに配置できます