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?