Is there any adequate reason for a manager to forbid the use of Git GUI Clients in a developer team.

I was talking to a friend about - let's call Foo Git GUI Client - all the features and how i was able to speed up some tasks and he said that any client is forbidden by the managers in his company.

Question is: Why?

A couple of reasons (on top of my mind):

  • Security. A GUI Client can access private information in the company repository.
  • Command knowledge. When the developer type the commands in Bash/CMD he exercises them.
  • Blame the tool. A developer can put the blame on the tool about some error.

The trade-off here IMHO is control

You substitute commands in a Bash shell for a click in a GUI. You cannot be sure that the GUI is going to do exactly what you think it will do.

But even that, in a couple of tests it can be checked.

  • 12
    Sounds like cargo-cult behavior to me. Dec 9 '16 at 19:30
  • 2
    As for your control comment, with how obtuse some of Git's command line options are, I don't think that it's a good argument for using the command line.
    – Matthew
    Dec 9 '16 at 19:51
  • 7
    Why didn't your friend ask their managers about it?
    – yannis
    Dec 9 '16 at 20:06
  • 4
    As a general rule, anytime someone tries to make decisions based on the supposed superiority of command-line tools over GUI ones, you can safely assume a priori that they're full of crap. Dec 9 '16 at 20:40
  • 5
    I don't think this question is answerable. An answer would require a mix of opinion, mind reading, and proving that a class of ideas doesn't exist.
    – jpmc26
    Dec 9 '16 at 22:44

No. There is no adequate reason for anyone to unilaterally forbid the use of a Git GUI client.

Unless the company has a stated network policy for software installation that incidentally forbids the use of a GUI client, or provides an explicit rationale for forbidding the use of specific software, there is no reason to forbid a GUI client for Git.

Such network policies might include concerns over the security of software that is installed, or may include concerns over licensing.

Ask the manager who forbade it.

  • 2
    For voters: remember, this isn't meta. Votes don't mean "agreement" here. They're a statement about the quality of the answer, where correctness is only one facet of quality (if you even think this is correct).
    – jpmc26
    Dec 9 '16 at 22:46
  • I dont think this answer is well supported or correct. The company could have strict security regulations (possibly imposed by governments or customers) forbidding any GUI software at all for all one knows. Or only be able to permit a short whitelist of software with an extremely laborious and expensive process to change said list.
    – Vality
    Dec 9 '16 at 22:49
  • 2
    I'm struggling to come up with any kind of rationale that would even apply that isn't a broader policy, and none are adequate, as the question requests, hence my snippiness. I've edited it regardless. If this edit doesn't meet the guidelines @gnat I'll delete.
    – greyfade
    Dec 9 '16 at 23:18


  • Some companies strictly prohibit the use of software they haven't purchased a lincence for.
  • Others don't like freeware to be used in the corporation.
  • Some others only allow a certain software to be used for a certain task, for example they give you Adobe Illustrator and won't allow you to install your own copy of Corel Draw.
  • They force to use the "corporative", aproved programs in the company's hardware, often times in order for the tech support personal to have o a limited range of apps to support in the desktops.

Those are the only logical reasons reason I could think of. But I suspect that's not why your boss prohibits you from using ANY Git GUI.

On the bright side, you will get to master Git command line, which is a plus. I personally prefer the CLI and only use a GUI tool to get a visual subway-map-style representation of all branches. Take advantage of Git's aliases so you don't have to type the co This is the list of aliases I use

  co = checkout
  ci = commit
  st = status
  br = branch
  hist = log --pretty=format:\"%h %ad |%C(yellow)%d%Creset %s [%an]\" --graph --date=short
  type = cat-file -t
  dump = cat-file -p
  lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
  res = diff-tree --no-commit-id --name-only -r
  graph = log --all --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%ci)%C(bold blue)<%an>%Creset'
  • 2
    The benefit of knowing the command line: it's the same on every platform. Another benefit: one interface to Git, everybody knows it. Better than Charlie being expert in CrapGui1 when Dave needs help with his new favourite LimitedGui2.
    – eckes
    Dec 9 '16 at 21:38
  • For the same reason every single Java developer should be working without IDE. Just Notepad and CL. I bet many of us here use IDE at job :-)
    – Laiv
    Dec 9 '16 at 22:26

Well, young Jedi: you'll have to learn the command line.

The benefit of knowing the command line: it's the same on every platform. Another benefit: one interface to Git, everybody knows it. Better than Charlie being expert in NotFeatureCompleteGui1 when Dave needs help with his new favourite LimitedGui2.

Maybe your manager had this in mind.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.