3 ms·
In my experience, if you are to learn Git properly, you need to start off with a GUI. Some of the concepts behind DVCS, such as the DAG, merging, resolving con
by jammycakes 12y ago
In my experience, if you are to learn Git properly, you need to start off with a GUI.
Some of the concepts behind DVCS, such as the DAG, merging, resolving conflicts, even the staging area, are much easier to understand when you can actually visualise them. I've found that people who try to jump in at the deep end with the command line sometimes don't understand Git as well as they think they do.
These days I tend to use the command line a lot more, and I would strongly recommend people to do so once they've mastered the core concepts, but I still like to have a GUI to hand so I can see at a glance where things are at with my branches, staging area, etc.
- therealidiot 12y agoWhenever I've tried GUI Git tools I've always found them confusing than the command line Git In trying to be simple they often left me feeling powerless
- jammycakes 12y agoDepends on the GUI tool. Some of them do over-simplify things, for example, by omitting the DAG view. This is misleading because it tries to make the source history appear linear when it isn't. GitHub for Windows and Visual Studio's source history both make this mistake, for instance. Have you tried SourceTree? That's the one I tend to recommend these days. Alternatively, if you're prepared to splash out a bit, SmartGit is worth considering too.
- austinz 12y agoI use a combination of SourceTree and the command line for my workflow, and can heartily recommend it. Some operations are just more intuitive to me when using the GUI such as: - staging portions of many files scattered across a directory tree - quickly glancing over diffs for a given commit - understanding the commit graph and the relationship between local and remote branches Each developer's experience may vary, but in general I feel like a good GUI tool can help a novice user develop and reinforce the mental model necessary to understand what git is doing. For example, what am I doing when I rebase my commit onto master vs merging it?
- biehl 12y agoExactly! And the cli is much better for the little workflows around rebase and cherry-pick.
- br3w5 12y agoI do much prefer the command line (actually because of its simplicity and directness but that's just my perspective). However, having just trained a team on using git (yes they have only just adopted it!) and finding that the most confusing parts for them were the relation of the working copy to staging to remote then a GUI could have helped.
- chriswarbo 12y agoI agree that visualisation is key, but ASCII art from `git log --graph` isn't too bad for getting the point across IMHO. Merging/conflicts/etc. are a straightforward extension of regular `diff` usage, which can be learned in a standalone way before approaching git. Personally I'm in love with Magit which is a thin Emacs wrapper around git.
- damian2000 12y agoAgreed, I've been using Git Extensions GUI in Windows recently and its made a big difference. I find being able to select from the recently used repos list great to be able to quickly move around projects.
- qznc 12y agohttp://pcottle.github.io/learnGitBranching/ http://pcottle.github.io/learnGitBranching/ This should be an interactive tutorial with visualization. It is currently broken for me (Chrome-Linux). There is screenshot on Github: https://github.com/pcottle/learnGitBranching https://github.com/pcottle/learnGitBranching
- zeendo 12y agoIn the last 5.5 years I've been using git I haven't met one person who used a GUI when learning it. I've taught several people how to use git and seen many others learn on their own....all no-GUIs. This experience spanned a variety of development teams in different companies (I was a consultant the entire time). I'm not claiming a GUI hampers learning Git but just to offer some experience of it not being necessary. With that said, this is very cool - https://pcottle.github.io/learnGitBranching/ https://pcottle.github.io/learnGitBranching/ Or well, it was when it worked. This seems similar, in spirit, but not as good as learnGitBranch was... - https://onlywei.github.io/explain-git-with-d3/ https://onlywei.github.io/explain-git-with-d3/
- erikb 12y agoI certainly used gitk a lot when starting out. But the other gui tools never convinced me. Gui tools have the problem that they often only map part of the process of using the shell tool. The best approach for learning for me was the git book. It's hard and long, but it explains everything and git really solves some hard problems, so in the end I felt it was worth it.