
More often than not navigating to most relevant diffs within the ide would actually involve more expensive context switching - for me I'm discovering that it's always somewhat high risk to switch editor contexts - editing text is just such a powerful interface that it tends to easily lead down rabbit holes that take me further from the most relevant info for my current task context.
#Smartgit force to mine merge android
I regularly use three editors when working on different platforms - Xcode, android studio, atom - sometimes it's convenient to use in ide repo-driven features (blame, sometimes historical diffs for a single file), however very often I'm actually more interested in quickly seeing diffs for files other than the one(s) I'm currently editing - so switching to a separate app context that's all about showing repo info tends to be the fastest way to see the relevant info I want side by side without changing away from the editing context I want. In reality though - i really like having the separate window - it's always there, does one thing and does it well, and it's easy to switch to when I want to take a look at the state of my repo/upstream branches/any dirtiness in my checkout (what exactly have I done recently?). I imagined that the ideal place for featureful visualization/interaction with the repo would be in the text editor/ide. It wasn't about switching window context away from the terminal but rather switching away from the text editor. I actually used to think similarly before I found git up - although to me Ive taken designers from "never used git" to confidently pushing, pulling, rebasing, and resolving conflicts in less than a day (and most of it after the first 10 minutes without outside help). And with the graphical reflog history rollback view - it's always really easy to back up however far you want if you mess up which gives great confidence as you explore the ui's features. I love this tool - it's honestly one of the best graphical tools I've ever used - rock solid reliable - intuitive, not leaky in the abstractions it represents - and not limited to only "simple" operations. The value of having a graphical depiction of the state that's changing as you invoke operations should not be underestimated. Distributed vc is conceptually nuanced, but not overly complicated - the complexity of git really is in the interface wherein you are asked to map command line syntax into abstract operations that manipulate a state that you actually can't easily see from the command line. Its true - and actually the well designed gui that accurately depicts the graphical state of your local repository makes it far easier to learn the concepts behind git than does the command line.
