My project is using git as vcs tool. This question is about the integrated Version Control tool. In development,our branch promise is:
- Branch
master
is running to supply stable and formal service. - Branch
staging
is running in a test environment. - Developing Branches. If there are new requirements, checkout new branch from master. After developing, we will merge the branch into staging for testing. If new code passes tests, we will merge it into master eventually.
Yesterday, I did such procedures:
I found a bug in my project. So I modified some code. But I found the branch is staging.As expected, I stash
the code in staging and checkout a new branch B from master. Then I recheckout branch staging and stash pop
after which I click IDEA's Panel ↘️ to checkout branch B, IDEA ask me to confirm checkout or not. I chose Smart Checkout
then continued my development in new Branch B and made a commit.
When I merged B to staging, I cannot find new features from B. I must cherry-pick the commit just from B. Why ? What did Smart Checkout do? It seemed to mark the something as unmodified.