- http://stackoverflow.com/questions/804115  (rebasevsmerge).
- https://www.atlassian.com/git/tutorials/merging-vs-rebasing (rebasevsmerge)
- https://www.atlassian.com/git/tutorials/undoing-changes/ (resetvscheckoutvsrevert)
- http://stackoverflow.com/questions/2221658 (HEAD^ vs HEAD~) (See git rev-parse)
- http://stackoverflow.com/questions/292357 (pullvsfetch)
- http://stackoverflow.com/questions/39651 (stashvsbranch)
- http://stackoverflow.com/questions/8358035 (resetvscheckoutvsrevert)
Picking the right architecture = Picking the right battles + Managing trade-offs
- Clarify and agree on the scope of the system
- User cases (description of sequences of events that, taken together, lead to a system doing something useful)
- Who is going to use it?
- How are they going to use it?