Gitに次のような状況があるとします。
作成されたリポジトリ:
mkdir GitTest2 cd GitTest2 git init
マスターでいくつかの変更が行われ、コミットされます。
echo "On Master" > file git commit -a -m "Initial commit"
Feature1はマスターから分岐し、いくつかの作業が行われます。
git branch feature1 git checkout feature1 echo "Feature1" > featureFile git commit -a -m "Commit for feature1"
一方、マスターコードにバグが発見され、ホットフィックスブランチが確立されます。
git checkout master git branch hotfix1 git checkout hotfix1
バグはhotfixブランチで修正され、マスターにマージされます(おそらくプルリクエスト/コードレビューの後)。
echo "Bugfix" > bugfixFile git commit -a -m "Bugfix Commit" git checkout master git merge --no-ff hotfix1
feature1の開発は継続します:
git checkout feature1
機能ブランチに修正プログラムが必要だとしましょう。おそらくバグもそこで発生するためです。機能ブランチにコミットを複製せずにこれを実現するにはどうすればよいですか?
機能の実装に関係のない、機能ブランチで2つの新しいコミットを取得しないようにします。プルリクエストを使用する場合、これは特に重要なようです。これらのコミットもすべてプルリクエストに含まれ、これは既に行われていますが(ホットフィックスはすでにマスターにあるため)確認する必要があります。
git merge master --ff-only
「致命的:早送りして中止することはできません。」ということはできませんが、これが役に立ったかどうかはわかりません。
git rebase
私には黒魔術のように思えます...
git branch feature1
と4.にgit checkout feature1
組み合わせることができる初心者には注目に値するでしょうgit checkout -b feature1
。完全に減らすことができますgit checkout -b hotfix1 master
feature1
が完全にローカルである場合は、をご覧くださいgit rebase
。