summaryrefslogtreecommitdiffabout
authorLars Hjemli <hjemli@gmail.com>2011-06-15 07:58:42 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2011-06-15 08:39:43 (UTC)
commit46ca32e04319caf9dd65f9de47704d637547ad23 (patch) (unidiff)
tree50fb9d2b3bd72e1e02c430e0f45ff705d11c36a6
parentef13e5eafe16474bb5b3c3b8156bbb24a9249b2e (diff)
downloadcgit-46ca32e04319caf9dd65f9de47704d637547ad23.zip
cgit-46ca32e04319caf9dd65f9de47704d637547ad23.tar.gz
cgit-46ca32e04319caf9dd65f9de47704d637547ad23.tar.bz2
cgitrc.5.txt: document repo.module-link
The global module-link option can be overridden per repo, but this has never been documented. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--cgitrc.5.txt6
1 files changed, 6 insertions, 0 deletions
diff --git a/cgitrc.5.txt b/cgitrc.5.txt
index 10b86f3..26c4bfc 100644
--- a/cgitrc.5.txt
+++ b/cgitrc.5.txt
@@ -211,384 +211,390 @@ max-stats::
211 "month", "quarter" and "year". If unspecified, statistics are 211 "month", "quarter" and "year". If unspecified, statistics are
212 disabled. Default value: none. See also: "repo.max-stats". 212 disabled. Default value: none. See also: "repo.max-stats".
213 213
214mimetype.<ext>:: 214mimetype.<ext>::
215 Set the mimetype for the specified filename extension. This is used 215 Set the mimetype for the specified filename extension. This is used
216 by the `plain` command when returning blob content. 216 by the `plain` command when returning blob content.
217 217
218module-link:: 218module-link::
219 Text which will be used as the formatstring for a hyperlink when a 219 Text which will be used as the formatstring for a hyperlink when a
220 submodule is printed in a directory listing. The arguments for the 220 submodule is printed in a directory listing. The arguments for the
221 formatstring are the path and SHA1 of the submodule commit. Default 221 formatstring are the path and SHA1 of the submodule commit. Default
222 value: "./?repo=%s&page=commit&id=%s" 222 value: "./?repo=%s&page=commit&id=%s"
223 223
224nocache:: 224nocache::
225 If set to the value "1" caching will be disabled. This settings is 225 If set to the value "1" caching will be disabled. This settings is
226 deprecated, and will not be honored starting with cgit-1.0. Default 226 deprecated, and will not be honored starting with cgit-1.0. Default
227 value: "0". 227 value: "0".
228 228
229noplainemail:: 229noplainemail::
230 If set to "1" showing full author email adresses will be disabled. 230 If set to "1" showing full author email adresses will be disabled.
231 Default value: "0". 231 Default value: "0".
232 232
233noheader:: 233noheader::
234 Flag which, when set to "1", will make cgit omit the standard header 234 Flag which, when set to "1", will make cgit omit the standard header
235 on all pages. Default value: none. See also: "embedded". 235 on all pages. Default value: none. See also: "embedded".
236 236
237project-list:: 237project-list::
238 A list of subdirectories inside of scan-path, relative to it, that 238 A list of subdirectories inside of scan-path, relative to it, that
239 should loaded as git repositories. This must be defined prior to 239 should loaded as git repositories. This must be defined prior to
240 scan-path. Default value: none. See also: scan-path, "MACRO 240 scan-path. Default value: none. See also: scan-path, "MACRO
241 EXPANSION". 241 EXPANSION".
242 242
243readme:: 243readme::
244 Text which will be used as default value for "repo.readme". Default 244 Text which will be used as default value for "repo.readme". Default
245 value: none. 245 value: none.
246 246
247remove-suffix:: 247remove-suffix::
248 If set to "1" and scan-path is enabled, if any repositories are found 248 If set to "1" and scan-path is enabled, if any repositories are found
249 with a suffix of ".git", this suffix will be removed for the url and 249 with a suffix of ".git", this suffix will be removed for the url and
250 name. Default value: "0". See also: scan-path. 250 name. Default value: "0". See also: scan-path.
251 251
252renamelimit:: 252renamelimit::
253 Maximum number of files to consider when detecting renames. The value 253 Maximum number of files to consider when detecting renames. The value
254 "-1" uses the compiletime value in git (for further info, look at 254 "-1" uses the compiletime value in git (for further info, look at
255 `man git-diff`). Default value: "-1". 255 `man git-diff`). Default value: "-1".
256 256
257repo.group:: 257repo.group::
258 Legacy alias for "section". This option is deprecated and will not be 258 Legacy alias for "section". This option is deprecated and will not be
259 supported in cgit-1.0. 259 supported in cgit-1.0.
260 260
261robots:: 261robots::
262 Text used as content for the "robots" meta-tag. Default value: 262 Text used as content for the "robots" meta-tag. Default value:
263 "index, nofollow". 263 "index, nofollow".
264 264
265root-desc:: 265root-desc::
266 Text printed below the heading on the repository index page. Default 266 Text printed below the heading on the repository index page. Default
267 value: "a fast webinterface for the git dscm". 267 value: "a fast webinterface for the git dscm".
268 268
269root-readme:: 269root-readme::
270 The content of the file specified with this option will be included 270 The content of the file specified with this option will be included
271 verbatim below the "about" link on the repository index page. Default 271 verbatim below the "about" link on the repository index page. Default
272 value: none. 272 value: none.
273 273
274root-title:: 274root-title::
275 Text printed as heading on the repository index page. Default value: 275 Text printed as heading on the repository index page. Default value:
276 "Git Repository Browser". 276 "Git Repository Browser".
277 277
278scan-hidden-path:: 278scan-hidden-path::
279 If set to "1" and scan-path is enabled, scan-path will recurse into 279 If set to "1" and scan-path is enabled, scan-path will recurse into
280 directories whose name starts with a period ('.'). Otherwise, 280 directories whose name starts with a period ('.'). Otherwise,
281 scan-path will stay away from such directories (considered as 281 scan-path will stay away from such directories (considered as
282 "hidden"). Note that this does not apply to the ".git" directory in 282 "hidden"). Note that this does not apply to the ".git" directory in
283 non-bare repos. This must be defined prior to scan-path. 283 non-bare repos. This must be defined prior to scan-path.
284 Default value: 0. See also: scan-path. 284 Default value: 0. See also: scan-path.
285 285
286scan-path:: 286scan-path::
287 A path which will be scanned for repositories. If caching is enabled, 287 A path which will be scanned for repositories. If caching is enabled,
288 the result will be cached as a cgitrc include-file in the cache 288 the result will be cached as a cgitrc include-file in the cache
289 directory. If project-list has been defined prior to scan-path, 289 directory. If project-list has been defined prior to scan-path,
290 scan-path loads only the directories listed in the file pointed to by 290 scan-path loads only the directories listed in the file pointed to by
291 project-list. Be advised that only the global settings taken 291 project-list. Be advised that only the global settings taken
292 before the scan-path directive will be applied to each repository. 292 before the scan-path directive will be applied to each repository.
293 Default value: none. See also: cache-scanrc-ttl, project-list, 293 Default value: none. See also: cache-scanrc-ttl, project-list,
294 "MACRO EXPANSION". 294 "MACRO EXPANSION".
295 295
296section:: 296section::
297 The name of the current repository section - all repositories defined 297 The name of the current repository section - all repositories defined
298 after this option will inherit the current section name. Default value: 298 after this option will inherit the current section name. Default value:
299 none. 299 none.
300 300
301section-from-path:: 301section-from-path::
302 A number which, if specified before scan-path, specifies how many 302 A number which, if specified before scan-path, specifies how many
303 path elements from each repo path to use as a default section name. 303 path elements from each repo path to use as a default section name.
304 If negative, cgit will discard the specified number of path elements 304 If negative, cgit will discard the specified number of path elements
305 above the repo directory. Default value: 0. 305 above the repo directory. Default value: 0.
306 306
307side-by-side-diffs:: 307side-by-side-diffs::
308 If set to "1" shows side-by-side diffs instead of unidiffs per 308 If set to "1" shows side-by-side diffs instead of unidiffs per
309 default. Default value: "0". 309 default. Default value: "0".
310 310
311snapshots:: 311snapshots::
312 Text which specifies the default set of snapshot formats generated by 312 Text which specifies the default set of snapshot formats generated by
313 cgit. The value is a space-separated list of zero or more of the 313 cgit. The value is a space-separated list of zero or more of the
314 values "tar", "tar.gz", "tar.bz2", "tar.xz" and "zip". Default value: 314 values "tar", "tar.gz", "tar.bz2", "tar.xz" and "zip". Default value:
315 none. 315 none.
316 316
317source-filter:: 317source-filter::
318 Specifies a command which will be invoked to format plaintext blobs 318 Specifies a command which will be invoked to format plaintext blobs
319 in the tree view. The command will get the blob content on its STDIN 319 in the tree view. The command will get the blob content on its STDIN
320 and the name of the blob as its only command line argument. The STDOUT 320 and the name of the blob as its only command line argument. The STDOUT
321 from the command will be included verbatim as the blob contents, i.e. 321 from the command will be included verbatim as the blob contents, i.e.
322 this can be used to implement e.g. syntax highlighting. Default value: 322 this can be used to implement e.g. syntax highlighting. Default value:
323 none. 323 none.
324 324
325summary-branches:: 325summary-branches::
326 Specifies the number of branches to display in the repository "summary" 326 Specifies the number of branches to display in the repository "summary"
327 view. Default value: "10". 327 view. Default value: "10".
328 328
329summary-log:: 329summary-log::
330 Specifies the number of log entries to display in the repository 330 Specifies the number of log entries to display in the repository
331 "summary" view. Default value: "10". 331 "summary" view. Default value: "10".
332 332
333summary-tags:: 333summary-tags::
334 Specifies the number of tags to display in the repository "summary" 334 Specifies the number of tags to display in the repository "summary"
335 view. Default value: "10". 335 view. Default value: "10".
336 336
337strict-export:: 337strict-export::
338 Filename which, if specified, needs to be present within the repository 338 Filename which, if specified, needs to be present within the repository
339 for cgit to allow access to that repository. This can be used to emulate 339 for cgit to allow access to that repository. This can be used to emulate
340 gitweb's EXPORT_OK and STRICT_EXPORT functionality and limit cgit's 340 gitweb's EXPORT_OK and STRICT_EXPORT functionality and limit cgit's
341 repositories to match those exported by git-daemon. This option MUST come 341 repositories to match those exported by git-daemon. This option MUST come
342 before 'scan-path'. 342 before 'scan-path'.
343 343
344virtual-root:: 344virtual-root::
345 Url which, if specified, will be used as root for all cgit links. It 345 Url which, if specified, will be used as root for all cgit links. It
346 will also cause cgit to generate 'virtual urls', i.e. urls like 346 will also cause cgit to generate 'virtual urls', i.e. urls like
347 '/cgit/tree/README' as opposed to '?r=cgit&p=tree&path=README'. Default 347 '/cgit/tree/README' as opposed to '?r=cgit&p=tree&path=README'. Default
348 value: none. 348 value: none.
349 NOTE: cgit has recently learned how to use PATH_INFO to achieve the 349 NOTE: cgit has recently learned how to use PATH_INFO to achieve the
350 same kind of virtual urls, so this option will probably be deprecated. 350 same kind of virtual urls, so this option will probably be deprecated.
351 351
352REPOSITORY SETTINGS 352REPOSITORY SETTINGS
353------------------- 353-------------------
354repo.about-filter:: 354repo.about-filter::
355 Override the default about-filter. Default value: none. See also: 355 Override the default about-filter. Default value: none. See also:
356 "enable-filter-overrides". 356 "enable-filter-overrides".
357 357
358repo.clone-url:: 358repo.clone-url::
359 A list of space-separated urls which can be used to clone this repo. 359 A list of space-separated urls which can be used to clone this repo.
360 Default value: none. 360 Default value: none.
361 361
362repo.commit-filter:: 362repo.commit-filter::
363 Override the default commit-filter. Default value: none. See also: 363 Override the default commit-filter. Default value: none. See also:
364 "enable-filter-overrides". 364 "enable-filter-overrides".
365 365
366repo.defbranch:: 366repo.defbranch::
367 The name of the default branch for this repository. If no such branch 367 The name of the default branch for this repository. If no such branch
368 exists in the repository, the first branch name (when sorted) is used 368 exists in the repository, the first branch name (when sorted) is used
369 as default instead. Default value: "master". 369 as default instead. Default value: "master".
370 370
371repo.desc:: 371repo.desc::
372 The value to show as repository description. Default value: none. 372 The value to show as repository description. Default value: none.
373 373
374repo.enable-commit-graph:: 374repo.enable-commit-graph::
375 A flag which can be used to disable the global setting 375 A flag which can be used to disable the global setting
376 `enable-commit-graph'. Default value: none. 376 `enable-commit-graph'. Default value: none.
377 377
378repo.enable-log-filecount:: 378repo.enable-log-filecount::
379 A flag which can be used to disable the global setting 379 A flag which can be used to disable the global setting
380 `enable-log-filecount'. Default value: none. 380 `enable-log-filecount'. Default value: none.
381 381
382repo.enable-log-linecount:: 382repo.enable-log-linecount::
383 A flag which can be used to disable the global setting 383 A flag which can be used to disable the global setting
384 `enable-log-linecount'. Default value: none. 384 `enable-log-linecount'. Default value: none.
385 385
386repo.enable-remote-branches:: 386repo.enable-remote-branches::
387 Flag which, when set to "1", will make cgit display remote branches 387 Flag which, when set to "1", will make cgit display remote branches
388 in the summary and refs views. Default value: <enable-remote-branches>. 388 in the summary and refs views. Default value: <enable-remote-branches>.
389 389
390repo.enable-subject-links:: 390repo.enable-subject-links::
391 A flag which can be used to override the global setting 391 A flag which can be used to override the global setting
392 `enable-subject-links'. Default value: none. 392 `enable-subject-links'. Default value: none.
393 393
394repo.logo:: 394repo.logo::
395 Url which specifies the source of an image which will be used as a logo 395 Url which specifies the source of an image which will be used as a logo
396 on this repo's pages. Default value: global logo. 396 on this repo's pages. Default value: global logo.
397 397
398repo.logo-link:: 398repo.logo-link::
399 Url loaded when clicking on the cgit logo image. If unspecified the 399 Url loaded when clicking on the cgit logo image. If unspecified the
400 calculated url of the repository index page will be used. Default 400 calculated url of the repository index page will be used. Default
401 value: global logo-link. 401 value: global logo-link.
402 402
403repo.module-link::
404 Text which will be used as the formatstring for a hyperlink when a
405 submodule is printed in a directory listing. The arguments for the
406 formatstring are the path and SHA1 of the submodule commit. Default
407 value: <module-link>
408
403repo.max-stats:: 409repo.max-stats::
404 Override the default maximum statistics period. Valid values are equal 410 Override the default maximum statistics period. Valid values are equal
405 to the values specified for the global "max-stats" setting. Default 411 to the values specified for the global "max-stats" setting. Default
406 value: none. 412 value: none.
407 413
408repo.name:: 414repo.name::
409 The value to show as repository name. Default value: <repo.url>. 415 The value to show as repository name. Default value: <repo.url>.
410 416
411repo.owner:: 417repo.owner::
412 A value used to identify the owner of the repository. Default value: 418 A value used to identify the owner of the repository. Default value:
413 none. 419 none.
414 420
415repo.path:: 421repo.path::
416 An absolute path to the repository directory. For non-bare repositories 422 An absolute path to the repository directory. For non-bare repositories
417 this is the .git-directory. Default value: none. 423 this is the .git-directory. Default value: none.
418 424
419repo.readme:: 425repo.readme::
420 A path (relative to <repo.path>) which specifies a file to include 426 A path (relative to <repo.path>) which specifies a file to include
421 verbatim as the "About" page for this repo. You may also specify a 427 verbatim as the "About" page for this repo. You may also specify a
422 git refspec by head or by hash by prepending the refspec followed by 428 git refspec by head or by hash by prepending the refspec followed by
423 a colon. For example, "master:docs/readme.mkd" Default value: <readme>. 429 a colon. For example, "master:docs/readme.mkd" Default value: <readme>.
424 430
425repo.snapshots:: 431repo.snapshots::
426 A mask of allowed snapshot-formats for this repo, restricted by the 432 A mask of allowed snapshot-formats for this repo, restricted by the
427 "snapshots" global setting. Default value: <snapshots>. 433 "snapshots" global setting. Default value: <snapshots>.
428 434
429repo.section:: 435repo.section::
430 Override the current section name for this repository. Default value: 436 Override the current section name for this repository. Default value:
431 none. 437 none.
432 438
433repo.source-filter:: 439repo.source-filter::
434 Override the default source-filter. Default value: none. See also: 440 Override the default source-filter. Default value: none. See also:
435 "enable-filter-overrides". 441 "enable-filter-overrides".
436 442
437repo.url:: 443repo.url::
438 The relative url used to access the repository. This must be the first 444 The relative url used to access the repository. This must be the first
439 setting specified for each repo. Default value: none. 445 setting specified for each repo. Default value: none.
440 446
441 447
442REPOSITORY-SPECIFIC CGITRC FILE 448REPOSITORY-SPECIFIC CGITRC FILE
443------------------------------- 449-------------------------------
444When the option "scan-path" is used to auto-discover git repositories, cgit 450When the option "scan-path" is used to auto-discover git repositories, cgit
445will try to parse the file "cgitrc" within any found repository. Such a 451will try to parse the file "cgitrc" within any found repository. Such a
446repo-specific config file may contain any of the repo-specific options 452repo-specific config file may contain any of the repo-specific options
447described above, except "repo.url" and "repo.path". Additionally, the "filter" 453described above, except "repo.url" and "repo.path". Additionally, the "filter"
448options are only acknowledged in repo-specific config files when 454options are only acknowledged in repo-specific config files when
449"enable-filter-overrides" is set to "1". 455"enable-filter-overrides" is set to "1".
450 456
451Note: the "repo." prefix is dropped from the option names in repo-specific 457Note: the "repo." prefix is dropped from the option names in repo-specific
452config files, e.g. "repo.desc" becomes "desc". 458config files, e.g. "repo.desc" becomes "desc".
453 459
454 460
455MACRO EXPANSION 461MACRO EXPANSION
456--------------- 462---------------
457The following cgitrc options supports a simple macro expansion feature, 463The following cgitrc options supports a simple macro expansion feature,
458where tokens prefixed with "$" are replaced with the value of a similary 464where tokens prefixed with "$" are replaced with the value of a similary
459named environment variable: 465named environment variable:
460 466
461- cache-root 467- cache-root
462- include 468- include
463- project-list 469- project-list
464- scan-path 470- scan-path
465 471
466Macro expansion will also happen on the content of $CGIT_CONFIG, if 472Macro expansion will also happen on the content of $CGIT_CONFIG, if
467defined. 473defined.
468 474
469One usage of this feature is virtual hosting, which in its simplest form 475One usage of this feature is virtual hosting, which in its simplest form
470can be accomplished by adding the following line to /etc/cgitrc: 476can be accomplished by adding the following line to /etc/cgitrc:
471 477
472 include=/etc/cgitrc.d/$HTTP_HOST 478 include=/etc/cgitrc.d/$HTTP_HOST
473 479
474 480
475EXAMPLE CGITRC FILE 481EXAMPLE CGITRC FILE
476------------------- 482-------------------
477 483
478.... 484....
479# Enable caching of up to 1000 output entriess 485# Enable caching of up to 1000 output entriess
480cache-size=1000 486cache-size=1000
481 487
482 488
483# Specify some default clone prefixes 489# Specify some default clone prefixes
484clone-prefix=git://example.com ssh://example.com/pub/git http://example.com/git 490clone-prefix=git://example.com ssh://example.com/pub/git http://example.com/git
485 491
486# Specify the css url 492# Specify the css url
487css=/css/cgit.css 493css=/css/cgit.css
488 494
489 495
490# Show extra links for each repository on the index page 496# Show extra links for each repository on the index page
491enable-index-links=1 497enable-index-links=1
492 498
493 499
494# Enable ASCII art commit history graph on the log pages 500# Enable ASCII art commit history graph on the log pages
495enable-commit-graph=1 501enable-commit-graph=1
496 502
497 503
498# Show number of affected files per commit on the log pages 504# Show number of affected files per commit on the log pages
499enable-log-filecount=1 505enable-log-filecount=1
500 506
501 507
502# Show number of added/removed lines per commit on the log pages 508# Show number of added/removed lines per commit on the log pages
503enable-log-linecount=1 509enable-log-linecount=1
504 510
505 511
506# Add a cgit favicon 512# Add a cgit favicon
507favicon=/favicon.ico 513favicon=/favicon.ico
508 514
509 515
510# Use a custom logo 516# Use a custom logo
511logo=/img/mylogo.png 517logo=/img/mylogo.png
512 518
513 519
514# Enable statistics per week, month and quarter 520# Enable statistics per week, month and quarter
515max-stats=quarter 521max-stats=quarter
516 522
517 523
518# Set the title and heading of the repository index page 524# Set the title and heading of the repository index page
519root-title=example.com git repositories 525root-title=example.com git repositories
520 526
521 527
522# Set a subheading for the repository index page 528# Set a subheading for the repository index page
523root-desc=tracking the foobar development 529root-desc=tracking the foobar development
524 530
525 531
526# Include some more info about example.com on the index page 532# Include some more info about example.com on the index page
527root-readme=/var/www/htdocs/about.html 533root-readme=/var/www/htdocs/about.html
528 534
529 535
530# Allow download of tar.gz, tar.bz2 and zip-files 536# Allow download of tar.gz, tar.bz2 and zip-files
531snapshots=tar.gz tar.bz2 zip 537snapshots=tar.gz tar.bz2 zip
532 538
533 539
534## 540##
535## List of common mimetypes 541## List of common mimetypes
536## 542##
537 543
538mimetype.gif=image/gif 544mimetype.gif=image/gif
539mimetype.html=text/html 545mimetype.html=text/html
540mimetype.jpg=image/jpeg 546mimetype.jpg=image/jpeg
541mimetype.jpeg=image/jpeg 547mimetype.jpeg=image/jpeg
542mimetype.pdf=application/pdf 548mimetype.pdf=application/pdf
543mimetype.png=image/png 549mimetype.png=image/png
544mimetype.svg=image/svg+xml 550mimetype.svg=image/svg+xml
545 551
546 552
547## 553##
548## List of repositories. 554## List of repositories.
549## PS: Any repositories listed when section is unset will not be 555## PS: Any repositories listed when section is unset will not be
550## displayed under a section heading 556## displayed under a section heading
551## PPS: This list could be kept in a different file (e.g. '/etc/cgitrepos') 557## PPS: This list could be kept in a different file (e.g. '/etc/cgitrepos')
552## and included like this: 558## and included like this:
553## include=/etc/cgitrepos 559## include=/etc/cgitrepos
554## 560##
555 561
556 562
557repo.url=foo 563repo.url=foo
558repo.path=/pub/git/foo.git 564repo.path=/pub/git/foo.git
559repo.desc=the master foo repository 565repo.desc=the master foo repository
560repo.owner=fooman@example.com 566repo.owner=fooman@example.com
561repo.readme=info/web/about.html 567repo.readme=info/web/about.html
562 568
563 569
564repo.url=bar 570repo.url=bar
565repo.path=/pub/git/bar.git 571repo.path=/pub/git/bar.git
566repo.desc=the bars for your foo 572repo.desc=the bars for your foo
567repo.owner=barman@example.com 573repo.owner=barman@example.com
568repo.readme=info/web/about.html 574repo.readme=info/web/about.html
569 575
570 576
571# The next repositories will be displayed under the 'extras' heading 577# The next repositories will be displayed under the 'extras' heading
572section=extras 578section=extras
573 579
574 580
575repo.url=baz 581repo.url=baz
576repo.path=/pub/git/baz.git 582repo.path=/pub/git/baz.git
577repo.desc=a set of extensions for bar users 583repo.desc=a set of extensions for bar users
578 584
579repo.url=wiz 585repo.url=wiz
580repo.path=/pub/git/wiz.git 586repo.path=/pub/git/wiz.git
581repo.desc=the wizard of foo 587repo.desc=the wizard of foo
582 588
583 589
584# Add some mirrored repositories 590# Add some mirrored repositories
585section=mirrors 591section=mirrors
586 592
587 593
588repo.url=git 594repo.url=git
589repo.path=/pub/git/git.git 595repo.path=/pub/git/git.git
590repo.desc=the dscm 596repo.desc=the dscm
591 597
592 598
593repo.url=linux 599repo.url=linux
594repo.path=/pub/git/linux.git 600repo.path=/pub/git/linux.git