Report: Git User's Survey 2011

Activity
62% Completion Rate
98604
Views
11498
Responses
7177
Complete
4321
Incomplete
Responses

1. What country do you live in (country of residence)?

Total respondents 8979
Respondents who skipped this question 782

2. How old are you (in years)?

Total respondents 8949
Respondents who skipped this question 812

3. Does Git include code or documentation by you?
(Are you a Git developer?)

Yes 9%
820
No 91%
8224
Total respondents 9044
Respondents who skipped this question 717

4. Have you found Git easy to learn?

Very easy 5%
427
Easy 23%
2006
Reasonably easy (average) 55%
4788
Hard 15%
1338
Very hard 1%
89
Total respondents 8648
Respondents who skipped this question 384

5. Have you found Git easy to use?

Very easy 11%
933
Easy 37%
3205
Reasonably easy (average) 44%
3799
Hard 7%
639
Very hard 1%
57
Total respondents 8633
Respondents who skipped this question 399

6. Which Git version(s) are you using?

pre 1.3 0%
5
1.3.x 0%
13
1.4.x 0%
42
1.5.x 2%
204
1.6.x 11%
966
1.7.x 90%
7703
1.7.x-rcN version (release candidate) 2%
191
minor (maintenance) release 1.x.y.z 13%
1153
'master' branch of official git repository 3%
276
'next' branch of official git repository 0%
39
'pu' branch of official git repository 0%
7
version from msysGit / Git for Windows fork repository 11%
947
JGit implementation (e.g. via Eclipse plugin, EGit) 6%
481
other git implementation (Git#, Dulwich, etc.) 1%
101
other, please specify 2%
184
Total respondents 8547
Respondents who skipped this question 485

7. Rate your own proficiency with Git:

1. novice 4%
321
2. casual, needs advice 19%
1643
3. everyday use 36%
3107
4. can offer advice 34%
2954
5. know it very well 7%
619
Total respondents 8644
Respondents who skipped this question 388

8. I use Git for (check all that apply):

work projects 82%
6240
unpaid projects 83%
6267
proprietary projects 43%
3249
OSS development (also public domain, and published and unlicensed) 64%
4860
private stuff (unpublished), in house 79%
5945
code (programming) and its documentation 88%
6629
data, documents (also e.g. static website) 49%
3680
sharing data or sync 23%
1748
managing configuration files 40%
3066
backup 21%
1579
backend for wiki, blog, or other web app 12%
897
backend for bugtracker / issue tracker 3%
235
frontend to other SCM (e.g. git-svn) 17%
1252
other (please specify) 2%
150
Total respondents 7572
Respondents who skipped this question 181

9. How do/did you obtain Git (install and/or upgrade)?

binary package 74%
5566
source package or script (automatic compiling) 30%
2242
source tarball (extract, make, make install) 12%
915
pull from (main) repository 10%
718
preinstalled / sysadmin job 12%
875
other - please specify (if none of the above apply) 4%
284
Total respondents 7532
Respondents who skipped this question 221

10. On which operating system(s) do you use Git?

GNU/Linux (includes MeeGo) 82%
6180
*BSD (FreeBSD, OpenBSD, NetBSD, etc.) 6%
491
MacOS X (Darwin) 50%
3786
MS Windows/Cygwin 11%
841
MS Windows/msysGit (MINGW) 29%
2173
some MS Windows (unknown or other) 2%
155
Solaris / OpenSolaris / Illuminati / IllumOS 3%
208
other Unix 2%
115
Other, please specify 1%
85
Total respondents 7562
Respondents who skipped this question 191

11. What Git interfaces, implementations and frontends do you use?

git (core) commandline 98%
7396
JGit (Java implementation), e.g. via Eclipse plugin 10%
778
NGit or Git# (C# implementation) 1%
57
Dulwich (pure-Python implementation) 2%
116
Git::PurePerl (Perl implementation) 0%
35
git.js (JavaScript) 0%
30
libgit2 bindings 2%
176
Easy Git 0%
19
StGIT 0%
36
Guilt 0%
7
TopGit 0%
14
Zit 0%
3
I don't know, I use only (graphical) tools 1%
93
Other (please specify) 19%
1459
Total respondents 7529
Respondents who skipped this question 224

12. What kind of Git tools do you use?

editor/IDE VC integration (e.g. EGit, TextMate bundle, magit) 40%
2612
build tool integration (e.g. git plugin for Maven, gitbuilder, Parabuild) 11%
682
filemanager / shell extension (e.g. git-cheetah, TortoiseGit) 13%
817
filesystem interface (e.g. gitfs, figfs) 1%
63
graphical history viewer/browser (e.g. gitk) 61%
3908
graphical commit tool (e.g. git-gui) 31%
1974
graphical diff and/or merge tool (e.g. Kompare, Meld) 31%
1989
graphical blame or pickaxe tool 7%
426
tool to manage git repositories (e.g. Gitosis, Gitolite) 22%
1444
git-instaweb, or self-hosted web interface 8%
536
self-hosted code review system (e.g. Gerrit) 6%
362
self-hosted git software forge (e.g. Gitorious, GitHub:FI, InDefero) 18%
1185
patch management interface (e.g. StGit, Guilt) 1%
70
tracking some files out-of-band (e.g. git-annex, git-media) 1%
65
storing metadata (e.g. metastore, gitperms, git-cache-meta) 0%
32
managing composite repositories (e.g. git-subtree, gitslave, repo) 3%
224
my own scripts (for daily use) 17%
1105
my own scripts (for special tasks) 16%
1057
other kind, please specify 7%
479
Total respondents 6450
Respondents who skipped this question 1303

13. List git tools that you use (optional)

Total respondents 1858
Respondents who skipped this question 5895

14. What do you use submodules (or their equivalent) for?

I don't use submodules at all 64%
4466
I use submodules (git-submodule) 29%
2050
I use repo 4%
273
I use git-subtree 3%
176
I use gitslave 0%
16
to import repositories maintained by others (in subdirectory) 19%
1313
for your own (or your organization's) code shared between different projects 15%
1084
to separate large and/or many files for performance reasons 2%
168
to separate data which you don't want (or aren't allowed) to disclose 3%
191
Other, please specify 2%
143
Total respondents 7030
Respondents who skipped this question 723

15. How do you include changes in a new commit?

never rarely often
commit -a
1415 - 20%
2095 - 30%
3526 - 50%
7036
commit <file>
2962 - 45%
1855 - 28%
1763 - 27%
6580
commit -i <file>
4804 - 78%
1102 - 18%
284 - 5%
6190
git add
255 - 4%
1134 - 16%
5859 - 81%
7248
git stage
4952 - 80%
992 - 16%
278 - 4%
6222
git update-index
5619 - 91%
485 - 8%
42 - 1%
6146
incremental add / commit
2653 - 42%
1737 - 27%
1988 - 31%
6378
graphical commit tool
3473 - 53%
1321 - 20%
1807 - 27%
6601
filemanager extension
5404 - 87%
516 - 8%
278 - 4%
6198
Total respondents 7454
Respondents who skipped this question 299

16. Which of the following features do you use?

git bundle (off-line transport) 8%
505
eol conversion (crlf) 22%
1381
custom diff/merge driver 14%
866
textconv 1%
89
word diff 14%
893
gitattributes (other than above) 6%
356
merge strategy options (e.g. -Xrenormalize) 4%
266
submodules (subprojects) 32%
1995
subtree merge (optionally git-subtree) 5%
305
partial (sparse) checkout 6%
349
assume-unchanged bit 2%
148
separate worktree / core.worktree 2%
154
multiple worktrees (git-new-worktree) 3%
176
gitdir mechanism ('.git' file pointing to repository) 3%
171
alternates mechanism (sharing object database) 2%
141
stash (optionally "git stash --keep-index") 70%
4395
shallow clone (e.g. "git clone --depth=<n>") 8%
515
detaching HEAD (e.g. "git checkout HEAD^0") 29%
1817
commit message templates 6%
398
interactive commit / per-hunk comitting / partial commit 36%
2300
interactive rebase (small scale history editing) 44%
2792
git-filter-branch or equivalent (large history rewriting) 13%
829
bisect (optionally "git bisect run <script>") 30%
1908
tracking code movement with git-blame ("git blame -M" etc.) 32%
2003
advanced history examination (pickaxe search, ancestor only, etc.) 8%
502
committing with dirty tree (keeping some changes uncommitted) 43%
2681
non-default hooks (from contrib/hooks/ or other) 15%
924
shell completion of commands 50%
3145
git-aware shell prompt 36%
2264
git aliases, shell aliases for git, or own git scripts 43%
2700
one-way interaction with other SCMs (from SCM to git) 14%
880
two-way interaction with other SCMs (git as fat client) 14%
898
git cvsserver 1%
35
git notes 3%
214
replace meachanism (git replace) 1%
32
permanent grafts (not only as a way to do filter-branch) 1%
62
Other, please specify 2%
95
Total respondents 6307
Respondents who skipped this question 1446

17. Which of the following features would you like to see implemented in git?

better support for big files (large media) 35%
2202
resumable clone/fetch (and other remote operations) 24%
1523
GitTorrent Protocol, or git-mirror 13%
830
lazy clone / on-demand fetching of object 12%
772
subtree clone 13%
816
support for tracking empty directories 33%
2045
environment variables in config 8%
520
better undo/abort/continue, and for more commands 23%
1420
'-n' like option for each command, which describes what would happen 32%
1968
warn before/when rewriting published history 24%
1525
side-by-side diffs and/or color-words diff in gitweb 18%
1109
admin and/or write features in gitweb 5%
336
graphical history view in gitweb 15%
932
GUI for rebase in git-gui 16%
1013
GUI for creating repository in git-gui 6%
382
graphical diff/merge tool integrated with git-gui 13%
840
syntax highlighting in git-gui 13%
816
filename encoding (in repository vs in filesystem) 5%
327
git push --create 25%
1553
localization of command-line messages (i18n) 3%
214
wholesame directory rename detection 15%
955
union checkouts (some files from one branch, some from other) 6%
385
advisory locking / "this file is being edited" 6%
397
"commands issued" (or "command equivalents") in git-gui / gitk 5%
309
built-in gitjour/bananajour support 3%
206
better support for submodules 25%
1582
other (described below) 5%
323
Total respondents 6241
Respondents who skipped this question 1512

18. Describe what features would you like to have in Git,
if they are not on the list above (in previous question).

Total respondents 828
Respondents who skipped this question 6925

19. Which git hosting site(s) do you use for your project(s)?
(Please check only hosting sites where you publish/push to with git)

repo.or.cz 3%
197
GitHub 88%
6179
Gitorious 12%
828
Google Code 8%
579
InDefero 0%
33
Savannah 1%
41
SourceForge 5%
351
BerliOS 0%
25
Assembla 3%
192
Codebase 1%
88
Unfuddle 2%
144
Codesion 0%
14
GitFarm 0%
5
ProjectLocker 0%
34
The Chaw 0%
2
Beanstalk 2%
124
CipherHive 0%
0
kernel.org 1%
72
freedesktop.org 1%
46
Alioth 1%
63
debian-hosted 1%
90
Fedora Hosted 1%
36
git hosting site for set of related projects (e.g. OLPC) 2%
109
generic site without git support 2%
138
company internal 31%
2180
self hosted 38%
2658
Other (please specify) 4%
262
Total respondents 7061
Respondents who skipped this question 398

20. Do you use paid git hosting, and if so, why?

N/A (don't use paid git hosting) 64%
4423
private repositories 36%
2461
increased limits (repository size, number of repositories) 8%
589
paid support / help 1%
84
extra features compared to free plan / free hosting 5%
326
other, please specify 2%
132
Total respondents 6932
Respondents who skipped this question 527

21. If you self-host git repositories, what tools do you use?
(if you are hosting git repositories, and use those tools)

gitosis 36%
1063
gitolite 25%
729
Gitblit 0%
4
SCM Manager 1%
19
gitweb 31%
918
cgit 10%
295
Gitalist 1%
21
ViewGit 1%
22
GitPHP / git-php 2%
45
GitHub:FI 3%
91
Gitorious 10%
283
InDefero 1%
29
Girocco (used e.g. by repo.or.cz) 0%
6
repo 4%
110
Gerrit 8%
241
other management / collaboration git tool 10%
283
Total respondents 2943
Respondents who skipped this question 4516

22. How do you fetch/get changes from upstream repositories?

git protocol (e.g. git://example.com/repo.git) 76%
5371
ssh (e.g. ssh://example.com/repo.git or user@example.com:/repo.git) 76%
5365
http (e.g. http://example.com/repo.git) 46%
3277
rsync (DEPRECATED) (e.g. rsync://example.com/repo.git) 0%
20
filesystem (e.g. /path/to/repo.git or file:///path/to/repo.git) 22%
1567
via git-bundle 2%
139
foreign SCM import / script like git-svn 13%
899
Other, please specify 1%
85
Total respondents 7062
Respondents who skipped this question 397

23. How do you publish/propagate your changes?

push via SSH 80%
5701
push via HTTP or HTTPS 28%
2024
push via git protocol 48%
3433
push (unknown) 6%
434
pull request (+ any form of announcement / notification) 21%
1465
format-patch + email 10%
727
format-patch + other (e.g. reviewboard, issue tracker or forum) 5%
333
git bundle 2%
133
git-svn (to Subversion repository) 13%
938
git-p4 (to Perforce repository) 1%
41
foreign SCM interface (other than mentioned above) 1%
63
other - please specify 1%
92
Total respondents 7117
Respondents who skipped this question 342

24. What other version control systems do you use beside Git?

PVCS 0%
22
SCCS 0%
16
RCS 3%
165
CVS 19%
975
Subversion 81%
4261
Perforce 7%
366
ClearCase 4%
205
AccuRev SCM 0%
14
StarTeam 0%
23
Visual SourceSafe 2%
114
Vault 0%
9
Team Foundation Server 3%
181
Visual Studio Team System / ALM 1%
30
Rational Team Concert 0%
16
Bazaar 9%
492
Mercurial 31%
1633
Monotone 1%
30
Darcs 3%
175
SVK 0%
24
Fossil 1%
72
Veracity 0%
11
BitKeeper 0%
12
Code Co-Op 0%
1
Teamware 0%
7
Plastic SCM 0%
13
by hand / own scripts / custom 3%
179
other, please specify 2%
99
Total respondents 5232
Respondents who skipped this question 2164

25. Overall, how happy are you with Git?

unhappy 1%
42
not so happy 3%
223
happy 22%
1624
very happy 54%
3909
completely ecstatic 20%
1425
Total respondents 7223
Respondents who skipped this question 145

26. In your opinion, which areas in Git need improvement?
Please state your preference.

don't care (1) don't need (2) a little (3) some (4) much (5) Average
user-interface
853 - 12%
990 - 14%
1819 - 26%
1932 - 28%
1299 - 19%
3.27 6893
documentation
309 - 4%
1210 - 18%
2409 - 35%
2148 - 31%
802 - 12%
3.28 6878
performance
867 - 13%
4041 - 60%
1270 - 19%
483 - 7%
112 - 2%
2.25 6773
portability
1771 - 26%
2437 - 36%
1077 - 16%
890 - 13%
575 - 9%
2.42 6750
more features
1098 - 16%
2341 - 35%
2310 - 34%
839 - 12%
135 - 2%
2.49 6723
tools (e.g. GUI)
1268 - 19%
1335 - 20%
1510 - 22%
1665 - 24%
1059 - 15%
2.99 6837
localization (translation)
3782 - 56%
2073 - 31%
463 - 7%
265 - 4%
127 - 2%
1.64 6710
community (mailing list)
3610 - 54%
2140 - 32%
715 - 11%
143 - 2%
54 - 1%
1.63 6662
community (IRC)
3769 - 57%
2051 - 31%
626 - 9%
143 - 2%
58 - 1%
1.60 6647
Total respondents 7018
Respondents who skipped this question 350

27. Did you participate in previous Git User's Surveys?

in 2006 1%
43
in 2007 1%
84
in 2008 3%
225
in 2009 9%
619
in 2010 15%
1107
I don't remember, but I have participated in the past 16%
1127
none of above (first Git User's Survey) 70%
5026
Total respondents 7153
Respondents who skipped this question 198

28. How do you compare the current Git version with the version from one year ago?

better 33%
2345
no changes 16%
1109
worse 0%
2
cannot say 52%
3683
Total respondents 7139
Respondents who skipped this question 212

29. How useful have you found the following forms of Git documentation?

never used not useful somewhat useful
Git Wiki
3036 - 45%
211 - 3%
2300 - 34%
1229 - 18%
6776
Git Reference site
2073 - 30%
205 - 3%
2434 - 36%
2086 - 31%
6798
other on-line help
870 - 13%
140 - 2%
2546 - 38%
3199 - 47%
6755
help distributed with git
1105 - 16%
454 - 7%
2400 - 36%
2793 - 41%
6752
printed books (or ebooks)
3570 - 53%
206 - 3%
1333 - 20%
1613 - 24%
6722
Total respondents 6954
Respondents who skipped this question 311

30. What channel(s) did you use to request help?

N/A (didn't request help about Git) 40%
2589
git mailing list (git@vger.kernel.org) 4%
275
msysGit mailing list / Google Group 1%
54
"Git for Human Beings" Google Group 1%
63
IRC (#git) 10%
680
IRC (other git/SCM related, e.g. #github) 3%
179
IRC (other than above) 5%
303
request in blog post or on wiki 4%
240
asking git guru/colleague 32%
2072
project mailing list, or IRC, or forum 5%
319
Twitter or other microblogging platform 9%
590
instant messaging (IM) like XMPP/Jabber 8%
502
StackOverflow or other StackExchange site 36%
2332
other (please specify) 5%
333
Total respondents 6538
Respondents who skipped this question 727

31. What gave you most trouble learning, understanding and using Git?

Total respondents 2907
Respondents who skipped this question 4358

32. Which communication channel(s) do you use?
Do you read the mailing list, or watch IRC channel?

git@vger.kernel.org (main) 38%
387
Git for Human Beings (Google Group) 12%
120
msysGit 11%
108
#git IRC channel 53%
537
#git-devel IRC channel 3%
35
#github or #gitorious IRC channel 21%
210
#revctrl IRC channel 0%
5
Total respondents 1018
Respondents who skipped this question 6247

33. Did you give help about Git? What medium did you use?

N/A (didn't give help about Git) 20%
1223
talk / private explanation 72%
4287
comment on somebody else blog 12%
725
IRC channel 17%
1017
presentation / seminar 10%
587
workshop or other form of schooling / training 6%
380
blog post / webpage 10%
604
article in magazine 0%
27
book or ebook 1%
79
git mailing list 2%
116
other mailing list 4%
250
email 22%
1320
Usenet (newsgroup) 0%
16
instant messaging (IM) like XMPP/Jabber 21%
1234
forum or wiki 7%
435
StackOverflow or similar 14%
834
remote aid / control tool, like FogCreek Copilot 1%
45
Other, please specify 2%
94
Total respondents 5982
Respondents who skipped this question 1283

34. What gave you most trouble explaining and teaching Git?

Total respondents 1422
Respondents who skipped this question 5843

35. How did you hear about this Git User's Survey?

git mailing list 3%
230
git-related mailing list (msysGit, Git for Human Beings, ...) 1%
53
mailing list or forum of some project 3%
225
#git IRC channel topic 0%
23
announcement on IRC channel 1%
66
git homepage 4%
251
git wiki 0%
20
git hosting site 19%
1315
software-related web site 4%
308
news web site or social news site (e.g. Digg, Reddit) 23%
1592
blog (or blog planet) 9%
649
other kind of web site 2%
117
Twitter or other microblogging platform 8%
572
Google+, Facebook, or other social platform 4%
314
other - please specify 18%
1287
Total respondents 7022
Respondents who skipped this question 169