假设我们在Git中遇到以下情况:
创建的存储库:
mkdir GitTest2cd GitTest2git init
Some modifications in the master take place and get committed:
echo "On Master" > filegit commit -a -m "Initial commit"
Feature1 branched off master and some work is done:
git branch feature1git checkout feature1echo "Feature1" > featureFilegit commit -a -m "Commit for feature1"
Meanwhile, a bug is discovered in the master-code and a hotfix-branch is established:
git checkout mastergit branch hotfix1git checkout hotfix1
The bug is fixed in the hotfix branch and merged back into the master (perhaps after a pull request/code review):
echo "Bugfix" > bugfixFilegit commit -a -m "Bugfix Commit"git checkout mastergit merge --no-ff hotfix1
Development on feature1 continues:
git checkout feature1
Say I need the hotfix in my feature branch, maybe because the bug also occurs there. How can I achieve this without duplicating the commits into my feature branch?
I want to prevent to get two new commits on my feature branch which have no relation to the feature implementation. This especially seems important for me if I use pull requests: All these commits will also be included in the pull request and have to be reviewed although this has already been done (as the hotfix is already in the master).
I can not do a git merge master --ff-only
: "fatal: Not possible to fast-forward, aborting.", but I am not sure if this helped me.