Report: Git User's Survey 2009

Activity
100% Completion Rate
14106
Views
3868
Responses
3868
Complete
0
Incomplete
Responses

1. What country do you live in?

Total respondents 3631
Respondents who skipped this question 237

2. How old are you (in years)?

Total respondents 3615
Respondents who skipped this question 253

3. Have you found Git easy to learn?

Very easy 4%
155
Easy 21%
750
Reasonably easy (average) 55%
1984
Hard 19%
675
Very hard 2%
71
Total respondents 3635
Respondents who skipped this question 233

4. Have you found Git easy to use?

Very easy 10%
356
Easy 37%
1348
Reasonably easy (average) 44%
1606
Hard 8%
301
Very hard 1%
40
Total respondents 3651
Respondents who skipped this question 217

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

pre 1.3 0%
9
1.3.x 0%
14
1.4.x 1%
46
1.5.x 19%
698
1.6.x 89%
3271
minor (maintenance) release 1.x.y.z 27%
978
'master' branch of official git repository 6%
220
'next' branch of official git repository 1%
43
other, please specify 3%
97
Total respondents 3667
Respondents who skipped this question 201

6. Rate your own proficiency with Git:

1. novice 4%
156
2. casual, needs advice 18%
675
3. everyday use 39%
1418
4. can offer advice 33%
1204
5. know it very well 6%
228
Total respondents 3681
Respondents who skipped this question 187

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

work projects 79%
2908
unpaid projects 78%
2887
proprietary projects 36%
1332
OSS development 66%
2422
private (unpublished) code 77%
2834
code (programming) 86%
3173
personal data 31%
1156
documents 31%
1145
static website 28%
1037
web app 41%
1527
sharing data or sync 21%
777
backup 24%
893
backend for wiki, blog, or other web app 9%
318
managing configuration files 33%
1202
frontend to other SCM (e.g. git-svn) 31%
1145
other (please specify) 3%
111
Total respondents 3684
Respondents who skipped this question 184

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

binary package 72%
2624
source package or script 23%
853
source tarball 20%
741
pull from (main) repository 17%
632
preinstalled / sysadmin job 6%
236
other - please specify (if none of the above apply) 4%
157
Total respondents 3668
Respondents who skipped this question 200

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

Linux 88%
3223
*BSD (FreeBSD, OpenBSD, NetBSD, etc.) 7%
271
MacOS X (Darwin) 42%
1547
MS Windows/Cygwin 10%
367
MS Windows/msysGit (MINGW) 22%
826
OpenSolaris 3%
120
other Unix 2%
77
Other, please specify 2%
56
Total respondents 3683
Respondents who skipped this question 185

10. What do you use to edit contents under version control with Git?
What kind of editor, IDE or RAD you use working with Git?

simple text editor 26%
942
programmers editor 88%
3221
IDE or RAD 33%
1208
WYSIWYG tool 6%
205
other kind - please specify 3%
122
Total respondents 3678
Respondents who skipped this question 190

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

git (core) commandline 97%
3557
JGit (Java implementation) 4%
164
library / language binding (e.g. Grit or Dulwich) 4%
134
Cogito (DEPRECATED) 0%
13
Easy Git 1%
28
Pyrite 0%
7
StGIT 2%
61
Guilt 0%
15
TopGit 1%
38
pg aka Patchy Git (DEPRECATED) 0%
2
gitk 46%
1673
git gui 20%
742
QGit 6%
231
GitView 1%
22
Giggle 4%
156
GitNub 4%
152
GitX 19%
685
git-cola 2%
58
tig 6%
209
TortoiseGit 5%
201
Git Extensions 2%
79
git-cheetah 0%
7
git-instaweb 3%
101
git-sh 1%
54
Gitosis (as admin) 11%
398
repo (to manage multiple repositories) 2%
65
editor/IDE VC integration 11%
417
filemanager integration / shell extension (any) 3%
98
graphical history viewer/browser (any) 16%
575
graphical commit tool (any) 6%
223
graphical diff tool 16%
594
graphical merge tool 15%
541
graphical blame or pickaxe tool 2%
84
my own scripts (for daily commandline use, porcelain) 9%
318
my own scripts (for special tasks) 10%
375
Other (please specify) 8%
299
Total respondents 3655
Respondents who skipped this question 213

12. What tool (or kind of tool) would you like to have Git support in?
(e.g. IDE, RAD, editors, continuous integration, software hosting, bugtracker, merge tool...)
(this includes language bindings and Git (re)implementations)

Total respondents 1308
Respondents who skipped this question 2560

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

repo.or.cz 7%
236
GitHub 62%
2110
Gitorious 10%
345
Savannah 1%
46
SourceForge 4%
138
Assembla 1%
44
Unfuddle 7%
222
kernel.org 2%
58
freedesktop.org 2%
56
Alioth 2%
78
Fedora Hosted 2%
52
git hosting site for set of related projects (e.g. OLPC) 3%
102
generic site without git support 4%
127
self hosted 57%
1929
Other (please specify) 6%
201
Total respondents 3407
Respondents who skipped this question 461

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

git protocol (e.g. git://example.com/repo.git) 78%
2818
ssh (e.g. ssh://example.com/repo.git or user@example.com:/repo.git) 71%
2562
http (e.g. http://example.com/repo.git) 32%
1164
rsync (DEPRECATED) (e.g. rsync://example.com/repo.git) 1%
19
filesystem (e.g. /path/to/repo.git or file:///path/to/repo.git) 24%
868
via git-bundle 2%
66
foreign SCM import / script like git-svn 22%
799
Other, please specify 2%
60
Total respondents 3590
Respondents who skipped this question 278

15. How do you publish/propagate your changes?

push 93%
3285
pull request (+ any form of announcement / notification) 28%
1003
format-patch + email 22%
789
format-patch + other (e.g. reviewboard, issue tracker or forum) 10%
342
git bundle 2%
78
git-svn (to Subversion repository) 25%
879
git-p4 (to Perforce repository) 1%
34
foreign SCM interface (other than mentioned above) 2%
71
other - please specify 3%
107
Total respondents 3544
Respondents who skipped this question 324

16. How often do you use the following forms of git commands
or extra git tools?

never rarely sometimes often
git add -i / -p
1217 - 38%
560 - 18%
615 - 19%
777 - 25%
3169
git add -u / -A
1684 - 55%
520 - 17%
381 - 12%
499 - 16%
3084
git am
2097 - 68%
484 - 16%
320 - 10%
161 - 5%
3062
git am -i
2555 - 85%
337 - 11%
98 - 3%
29 - 1%
3019
git apply
1850 - 60%
707 - 23%
403 - 13%
104 - 3%
3064
git apply --whitespace=fix
2492 - 83%
353 - 12%
114 - 4%
58 - 2%
3017
git archive
2260 - 74%
426 - 14%
292 - 10%
81 - 3%
3059
git bisect
1655 - 54%
783 - 25%
534 - 17%
116 - 4%
3088
git bisect run <cmd>
2327 - 77%
459 - 15%
198 - 7%
33 - 1%
3017
git annotate
2159 - 71%
502 - 17%
282 - 9%
96 - 3%
3039
git gui blame
2516 - 83%
309 - 10%
160 - 5%
30 - 1%
3015
git blame
1354 - 44%
753 - 24%
745 - 24%
235 - 8%
3087
git blame -L <start>,<end> etc.
2515 - 84%
328 - 11%
120 - 4%
33 - 1%
2996
git bundle
2729 - 90%
224 - 7%
44 - 1%
20 - 1%
3017
git cherry
2378 - 79%
402 - 13%
183 - 6%
54 - 2%
3017
git cherry-pick
1331 - 43%
640 - 21%
749 - 24%
373 - 12%
3093
git cherry-pick -n / --no-commit
2106 - 71%
494 - 17%
287 - 10%
96 - 3%
2983
git citool
2790 - 94%
115 - 4%
35 - 1%
42 - 1%
2982
git clean
1617 - 53%
666 - 22%
443 - 15%
306 - 10%
3032
git add + git commit
218 - 7%
154 - 5%
410 - 13%
2377 - 75%
3159
git commit -a
297 - 9%
352 - 11%
557 - 17%
2018 - 63%
3224
git commit <file>...
835 - 27%
464 - 15%
568 - 18%
1241 - 40%
3108
git commit -i <file>...
1896 - 63%
522 - 17%
280 - 9%
299 - 10%
2997
git commit --amend
931 - 30%
530 - 17%
780 - 25%
841 - 27%
3082
git cvsexportcommit
2860 - 96%
86 - 3%
20 - 1%
24 - 1%
2990
git cvsserver
2933 - 98%
58 - 2%
11 - 0%
5 - 0%
3007
git daemon
2297 - 76%
414 - 14%
167 - 6%
136 - 5%
3014
git daemon (pushing enabled)
2565 - 86%
279 - 9%
81 - 3%
69 - 2%
2994
git difftool
2201 - 73%
402 - 13%
271 - 9%
141 - 5%
3015
git ... --dirstat
2588 - 87%
260 - 9%
96 - 3%
22 - 1%
2966
git fetch [<options>]
877 - 29%
692 - 23%
728 - 24%
761 - 25%
3058
git filter-branch
2319 - 78%
543 - 18%
113 - 4%
16 - 1%
2991
git format-patch
1712 - 57%
561 - 19%
462 - 15%
292 - 10%
3027
git grep
1746 - 57%
558 - 18%
331 - 11%
410 - 13%
3045
git imap-send
2878 - 96%
81 - 3%
20 - 1%
10 - 0%
2989
git instaweb
2630 - 88%
270 - 9%
69 - 2%
15 - 1%
2984
git log --grep/--author/...
1251 - 41%
635 - 21%
671 - 22%
472 - 16%
3029
git log -S<string> (pickaxe search)
2077 - 69%
484 - 16%
298 - 10%
130 - 4%
2989
git log --graph
1908 - 63%
658 - 22%
298 - 10%
153 - 5%
3017
git merge
413 - 13%
640 - 20%
1046 - 33%
1059 - 34%
3158
git merge with strategy
2228 - 74%
524 - 18%
170 - 6%
70 - 2%
2992
git merge --squash
2098 - 69%
528 - 17%
285 - 9%
109 - 4%
3020
git mergetool
2143 - 71%
361 - 12%
260 - 9%
253 - 8%
3017
git pull (no remote)
635 - 20%
508 - 16%
630 - 20%
1386 - 44%
3159
git pull --rebase [<options>]
1472 - 49%
648 - 21%
464 - 15%
437 - 14%
3021
git pull <remote>
391 - 12%
579 - 18%
896 - 28%
1312 - 41%
3178
git pull <URL> <ref>
1187 - 39%
800 - 26%
535 - 18%
523 - 17%
3045
git push
160 - 5%
209 - 6%
533 - 16%
2355 - 72%
3257
Total respondents 3363
Respondents who skipped this question 505

17. How often do you use the following forms of git commands
or extra git tools? (continued)

never rarely sometimes often
git relink
2744 - 96%
90 - 3%
15 - 1%
6 - 0%
2855
git rebase
730 - 24%
678 - 23%
748 - 25%
843 - 28%
2999
git rebase -i
1308 - 45%
434 - 15%
510 - 17%
684 - 23%
2936
git reflog or git log -g
1996 - 69%
474 - 16%
314 - 11%
91 - 3%
2875
git remote
991 - 33%
613 - 21%
920 - 31%
437 - 15%
2961
git remote update
1870 - 65%
443 - 15%
336 - 12%
236 - 8%
2885
git request-pull
2523 - 88%
224 - 8%
90 - 3%
30 - 1%
2867
git revert
911 - 31%
1016 - 34%
845 - 29%
185 - 6%
2957
git send-email
2396 - 83%
242 - 8%
137 - 5%
100 - 3%
2875
git show-branch
2160 - 75%
382 - 13%
226 - 8%
100 - 3%
2868
git shortlog
1986 - 69%
506 - 18%
280 - 10%
109 - 4%
2881
git shortlog -s
2334 - 82%
322 - 11%
138 - 5%
61 - 2%
2855
git stash
762 - 25%
454 - 15%
881 - 29%
904 - 30%
3001
git stash --keep-index
2329 - 82%
292 - 10%
152 - 5%
77 - 3%
2850
git submodule
1901 - 66%
496 - 17%
314 - 11%
187 - 6%
2898
git subtree
2658 - 93%
147 - 5%
39 - 1%
8 - 0%
2852
git svn
1410 - 48%
499 - 17%
453 - 15%
594 - 20%
2956
git whatchanged
2313 - 80%
324 - 11%
166 - 6%
72 - 3%
2875
git gui
1895 - 65%
430 - 15%
270 - 9%
340 - 12%
2935
gitk
1085 - 36%
508 - 17%
577 - 19%
842 - 28%
3012
Total respondents 3166
Respondents who skipped this question 702

18. Which of the following features have you used?

git bundle (off-line transport) 8%
255
eol conversion (crlf) 16%
474
gitattributes 10%
298
mergetool and/or difftool, or custom diff/merge driver 34%
1024
submodules (subprojects) 33%
1003
subtree merge (optionally git-subtree) 5%
152
separate worktree / core.worktree 4%
116
multiple worktrees (git-new-worktree) 4%
119
alternates mechanism (sharing object database) 5%
154
stash (optionally "git stash --keep-index") 71%
2141
shallow clone (e.g. "git clone --depth=<n>") 12%
370
detaching HEAD (e.g. "git checkout HEAD^0") 23%
696
interactive rebase (small scale history editing) 47%
1420
interactive commit / per-hunk comitting / partial commit 45%
1369
commit message templates 6%
178
git-filter-branch or equivalent (large history rewriting) 15%
442
bisect (optionally "git bisect run <script>") 38%
1159
committing with dirty tree (keeping some changes uncommitted) 55%
1658
non-default hooks (from contrib/hooks/ or other) 17%
520
shell completion of commands 58%
1756
git-aware shell prompt 38%
1154
git aliases, shell aliases for git, or own git scripts 46%
1386
Other, please specify 1%
29
Total respondents 3031
Respondents who skipped this question 837

19. What features would you like implemented in Git?
What features are you missing?

Total respondents 1097
Respondents who skipped this question 2771

20. Overall, how happy are you with Git?

unhappy 1%
35
not so happy 4%
157
happy 23%
842
very happy 51%
1841
completely ecstatic 20%
711
Total respondents 3586
Respondents who skipped this question 282

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

don't need (1) a little (2) some (3) much (4) Average
user-interface
490 - 15%
967 - 29%
1137 - 34%
765 - 23%
2.65 3359
documentation
385 - 11%
1031 - 31%
1357 - 40%
605 - 18%
2.65 3378
performance
2351 - 71%
728 - 22%
202 - 6%
50 - 2%
1.38 3331
more features
1741 - 53%
1104 - 34%
389 - 12%
60 - 2%
1.63 3294
tools (e.g. GUI)
753 - 22%
758 - 23%
1004 - 30%
839 - 25%
2.58 3354
localization (translation)
2384 - 75%
433 - 14%
247 - 8%
101 - 3%
1.39 3165
Total respondents 3448
Respondents who skipped this question 420

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

in 2006 11%
92
in 2007 31%
263
in 2008 97%
828
Total respondents 853
Respondents who skipped this question 3015

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

better 49%
1486
no changes 8%
244
worse 0%
11
cannot say 43%
1293
Total respondents 3034
Respondents who skipped this question 834

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

never used not useful somewhat useful
Git Wiki
1241 - 37%
146 - 4%
1277 - 38%
726 - 21%
3390
on-line help
443 - 13%
105 - 3%
1387 - 40%
1495 - 44%
3430
help distributed with git
270 - 8%
219 - 6%
1240 - 36%
1699 - 50%
3428
Total respondents 3464
Respondents who skipped this question 404

25. Have you tried to get help regarding Git from other people?

Yes 65%
2261
No 35%
1236
Total respondents 3497
Respondents who skipped this question 371

26. If yes, did you get these problems resolved quickly and to your liking?

Yes 62%
1458
No 6%
133
Somewhat 32%
752
Total respondents 2343
Respondents who skipped this question 1525

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

git mailing list (git@vger.kernel.org) 12%
284
"Git for Human Beings" Google Group 2%
55
IRC (#git) 31%
716
IRC (other git/SCM related, e.g. #github) 10%
227
request in blog post or on wiki 8%
188
asking git guru/colleague 58%
1360
project mailing list, or IRC, or forum 19%
448
Twitter or other microblogging platform 12%
287
instant messaging (IM) like XMPP/Jabber 19%
442
StackOverflow 17%
406
other (please specify) 7%
174
Total respondents 2334
Respondents who skipped this question 1534

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

git@vger.kernel.org (main) 42%
390
Git for Human Beings (Google Group) 8%
74
msysGit 10%
98
#git IRC channel 55%
516
#github or #gitorious IRC channel 21%
195
#revctrl IRC channel 0%
4
Total respondents 938
Respondents who skipped this question 2930

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

git mailing list 8%
270
git-related mailing list (msysGit, Git for Human Beings, ...) 1%
39
mailing list or forum of some project 6%
201
#git IRC channel topic 2%
63
announcement on IRC channel 2%
56
git homepage 13%
443
git wiki 3%
95
git hosting site 14%
502
software-related web site 4%
140
news web site or social news site (e.g. Digg, Reddit) 3%
95
blog (or blog planet) 21%
748
other kind of web site 1%
44
Twitter or other microblogging platform 10%
350
other - please specify 13%
438
Total respondents 3484
Respondents who skipped this question 384

30. What other comments or suggestions do you have that are not covered by the questions above?

Total respondents 555
Respondents who skipped this question 3313