recently we moved from TFS to GIT so I am still learning how to use this amazing tool.
At the moment I am working in a very simple structure like the following one:
main -------------------------------------- 01 ----------
\                                           /
 dev ----------------------- 01 ---------- 02 ----------
  \                          /             /
   feat/login ------ 01 --- 02 --- 03 --- 04 --- 05 ---
- Developers work on feature/somethingand every tot hours they check-in and trigger a build with tests
- When the feature is stable they merge back into devwhich will contains 1 or more checkins fromfeature/something
- When the whole feature is ready, they merge the feature from devintomain
The questions are the following:
- If I start to work from feat/login, if I dogit checkout devI don't get the latest code fromdevbut also my latest local file changed infeat/login. How can I checkoutdevwithout carry over the local changes not commited from my previous branch?
- Assuming a developer made a mistake, how can I rollbackto a previous check-in01indevand push it so that the latest check-in02is not the last one anymore?
 
     
     
    