What are the benefits and disadvantage of using either Git Extensions or TortoiseGit on a Windows Based OS?
相关问题
- Why does recursive submodule update from github fa
- Extended message for commit via Visual Studio Code
- Emacs shell: save commit message
- Can I organize Git submodules in a flat hierarchy?
- Upload file > 25 MB on Github
相关文章
- 请教Git如何克隆本地库?
- GitHub:Enterprise post-receive hook
- Git Clone Fails: Server Certificate Verification F
- SSIS solution on GIT?
- Is there a version control system abstraction for
- ssh: Could not resolve hostname git: Name or servi
- Cannot commit changes with gitextensions
- git: retry if http request failed
I don't know GitExtensions, but I can share my experience with TortoiseGit (alluded to by marc_s's comment):
Pros:
Cons:
The problem with TortoiseGit is that people who worked with TortoiseSVN will think everything will (or should) work exactly like in SVN... and end up never really understanding how to work with git. As a personal experience, the company I work migrated from SVN to git after 2 years, and every single developer that used TortoiseGit ended up not really knowing what they are doing and sometimes screwing up their local repositories. In the end, they dropped TortoiseGit and spend time learning git "the hard way" (shell, msysGit on Windows) and everyone has been happy since then.
Conclusion: Just use msysGit directly and properly learn git. You will avoid many headaches in the future.
My company tried both and quickly dropped Tortoise Git. It crashed much more often. The coders claim that Tortoise Git is not capable enough but I did not check that myself. But I did see lots of The crashes myself.
The Coders prefer git bash, the others use but hate git Extensions. Although even some of them additionally open up git bash. Git bash is unavoidable to see the progress counters.
Git Extensions has no option to show progress counters during a pull. So with Git Extensions only, you sit in front of an enigmatic non-progress bar, not knowing what happens and whether something failed. The worst is a missing or incorrect password: Git Extensions just lets you wait forever, showing the same glowing bar as if it was doing something time-consuming. Another horror of Git Extensions is the frequent abort with "out of memory", when versioning many big files and pulling with rebase. After such an abort, non-coding users are always overwhelmed with problems. Many files that they did not change show up as changed and the lock file prevents them from dealing with the problem, etc..
In my opinion both GUI tools are immature.
You want Git Extensions for one important reason - it shows you the graphical view of the commit log (see below). Without that graphical view I don't think most folks new to git will ever get what is going on with branches, commits, rebasing, cherry picking, etc (I know I didn't).
You are going to do want to do some of your work on the command line also, it's your best bet to practically use git since all the help you get will be command line based.
All that said, you can use Tortoise Git also (assuming it works) since they all call the same command line executables and act on the same git repository.
Most IDEs have git support also, JetBrains IDEA does a great job of adding change lists and other functionality on top of it.
Just to counter some of remarks above:
With the correct expectation, TortoiseGit provides an excellent gui for working with git on Windows. It is not a replacement for TortoiseSvn, but an improved gui over what one can achieve using gitk + git-gui (which can be considered part of core git functionality and accessible in msysgit). The only bad thing I see is how you would not need to remember all the exact commands for checkout/rebase/merge etc, since it is possible to do all that very conveniently through the gui (which is the whole point). The putty/ssh problems have more to do with the inferior support for ssh on Windows, and are not unique to TortoiseGit.
DATE: 2011-08-27.
At this point, Tortoise Git DOES NOT WORK at all, and the issue on the google code site has not received attention in a month: http://groups.google.com/group/tortoisegit-users/browse_thread/thread/9090337b7936e1e1 .
The box 'Load Putty Key' from the popup on Tortoise Git's first usage to clone a site (and start developing) is grayed out. So no private key is found, and the error message is 'connection dropped' SUCCESSFUL!!!!
Git Bash works perfectly, albeit console based. And if everyone above talks about not understanding the Git concept when using Tortoise Git, I'd just stay away from it based on that, even not taking into account the last 3 hours I spent trying to get Tortoise Git working for a developer. He's going to have to learn console Git, or go down the road.
I got it working in 15 minutes, and I'm just a hacker trying to hire programmers ;-)
PS, Eclipse has all three major Version Control repository 'connectors' available and is a very good editor.
I use GitExtensions. I haven't used TortoiseGit but one of our other developers loves it and refuses to use GitExtensions. His reasoning is 1) It's familiar; 2) It has great Windows Explorer integration.
Using GitExtensions I tend to use the Windows Explorer integration for three things only:
1) To create a new local repository (context menu item Git Init Here, which is actually a Git for Windows command; GitExtensions sits on top of Git for Windows);
2) To open the Git Extensions GUI (the browse window);
3) To clone a remote repository down to a local repository (context menu item Git Extensions > Clone).
For pretty much everything else I just have the GitExtensions GUI up and work from there.
The developers of GitExtensions claim that almost any command can be executed from the GUI. This is not quite true but I find I only need to drop into the command line interface about once or twice a month for complex tasks.
In some cases the GUI makes complex tasks simple by hiding the complexity of the underlying Git commands. This sometimes involves combining several Git commands into a single action. eg Creating submodules where the GUI combines adding a submodule, initializing it and updating it into a single action. In another case, the GUI simplifies a task by providing a command which Git lacks - removing a submodule (in Git you have to manually edit the various files such as .gitmodules and .git/config to remove a submodule). I'd be interested to know if TortoiseGit simplifies complex tasks in a similar way.
GitExtensions also has fairly basic Visual Studio integration. Don't know if TortoiseGit does. There is a separate Git Source Control Provider for Visual Studio 2008 and 2010 which provides much more extensive Visual Studio integration. However, having installed the Git Source Control Provider I find I never use it. The only GitExtensions integration I use from Visual Studio is on the toolbar, to open the GitExtensions GUI with the appropriate repository. I'll work with Visual Studio on one monitor and GitExtensions open in the other.
From at least version 2.32 GitExtensions shows the number of uncommitted files in its toolbar. I previously used 2.24 which didn't have this feature and it's very handy. Gives instant feedback on whether there are any uncommitted changes or not.