-
1. čµ·ę„
- 1.1 å ³äŗēę¬ę§å¶
- 1.2 Git ē®å²
- 1.3 Git ęÆä»ä¹ļ¼
- 1.4 å½ä»¤č”
- 1.5 å®č£ Git
- 1.6 åꬔčæč” Git åēé ē½®
- 1.7 č·ååø®å©
- 1.8 ę»ē»
-
2. Git åŗē”
- 2.1 č·å Git ä»åŗ
- 2.2 č®°å½ęÆę¬”ę“ę°å°ä»åŗ
- 2.3 ę„ēęäŗ¤åå²
- 2.4 ę¤ę¶ęä½
- 2.5 čæēØä»åŗē使ēØ
- 2.6 ęę ē¾
- 2.7 Git å«å
- 2.8 ę»ē»
-
3. Git åęÆ
- 3.1 åęÆē®ä»
- 3.2 åęÆēę°å»ŗäøåå¹¶
- 3.3 åęÆē®”ē
- 3.4 åęÆå¼åå·„ä½ęµ
- 3.5 čæēØåęÆ
- 3.6 ååŗ
- 3.7 ę»ē»
-
4. ęå”åØäøē Git
- 4.1 åč®®
- 4.2 åØęå”åØäøę建 Git
- 4.3 ēę SSH å ¬é„
- 4.4 é ē½®ęå”åØ
- 4.5 Git å®ę¤čæēØ
- 4.6 Smart HTTP
- 4.7 GitWeb
- 4.8 GitLab
- 4.9 第äøę¹ęē®”ēéę©
- 4.10 ę»ē»
-
5. ååøå¼ Git
- 5.1 ååøå¼å·„ä½ęµēØ
- 5.2 åäøäøŖé”¹ē®č“”ē®
- 5.3 结ę¤é”¹ē®
- 5.4 ę»ē»
-
6. GitHub
- 6.1 蓦ę·ēå建åé ē½®
- 6.2 对锹ē®ååŗč“”ē®
- 6.3 结ę¤é”¹ē®
- 6.4 ē®”ēē»ē»
- 6.5 čę¬ GitHub
- 6.6 ę»ē»
-
7. Git å·„å ·
- 7.1 éę©äæ®č®¢ēę¬
- 7.2 äŗ¤äŗå¼ęå
- 7.3 č“®čäøęø ē
- 7.4 ē¾ē½²å·„ä½
- 7.5 ęē“¢
- 7.6 éååå²
- 7.7 éē½®ęåÆ
- 7.8 é«ēŗ§åå¹¶
- 7.9 Rerere
- 7.10 ä½æēØ Git č°čÆ
- 7.11 å樔å
- 7.12 ęå
- 7.13 ęæę¢
- 7.14 åčÆååØ
- 7.15 ę»ē»
-
8. čŖå®ä¹ Git
- 8.1 é ē½® Git
- 8.2 Git å±ę§
- 8.3 Git é©å
- 8.4 使ēØå¼ŗå¶ēē„ēäøäøŖä¾å
- 8.5 ę»ē»
-
9. Git äøå ¶ä»ē³»ē»
- 9.1 ä½äøŗå®¢ę·ē«Æē Git
- 9.2 čæē§»å° Git
- 9.3 ę»ē»
-
10. Git å éØåē
- 10.1 åŗå±å½ä»¤äøäøå±å½ä»¤
- 10.2 Git 对豔
- 10.3 Git å¼ēØ
- 10.4 å ęä»¶
- 10.5 å¼ēØč§č
- 10.6 ä¼ č¾åč®®
- 10.7 结ę¤äøę°ę®ę¢å¤
- 10.8 ēÆå¢åé
- 10.9 ę»ē»
-
A1. éå½ A: åØå ¶å®ēÆå¢äøä½æēØ Git
-
A2. éå½ B: åØä½ ēåŗēØäøåµå „ Git
- A2.1 å½ä»¤č” Git ę¹å¼
- A2.2 Libgit2
- A2.3 JGit
- A2.4 go-git
- A2.5 Dulwich
-
A3. éå½ C: Git å½ä»¤
- A3.1 设置äøé ē½®
- A3.2 č·åäøå建锹ē®
- A3.3 åæ«ē §åŗē”
- A3.4 åęÆäøåå¹¶
- A3.5 锹ē®åäŗ«äøę“ę°
- A3.6 ę£ę„äøęÆč¾
- A3.7 č°čÆ
- A3.8 蔄äø
- A3.9 é®ä»¶
- A3.10 å¤éØē³»ē»
- A3.11 ē®”ē
- A3.12 åŗå±å½ä»¤
4.7 ęå”åØäøē Git - GitWeb
GitWeb
å¦ęä½ åÆ¹é”¹ē®ę读åęéęåŖčÆ»ęéļ¼ä½ åÆč½éč¦å»ŗē«čµ·äøäøŖåŗäŗē½é”µēē®ęę„ēåØć Git ęä¾äŗäøäøŖå«å GitWeb ē CGI čę¬ę„åčæé”¹å·„ä½ć

å¦ęä½ ę³č¦ę„ē GitWeb å¦ä½å±ē¤ŗä½ ē锹ē®ļ¼å¹¶äøåØęå”åØäøå®č£
äŗč½»éēŗ§ Web ęå”åØęÆå¦ lighttpd
ę webrick
ļ¼
Git ęä¾äŗäøäøŖå½ä»¤ę„č®©ä½ åÆåØäøäøŖäø“ę¶ēęå”åØć
åØ Linux ē³»ē»ēēµčäøļ¼lighttpd
éåøøå·²ē»å®č£
äŗļ¼ęä»„ä½ åŖéč¦åØé”¹ē®ē®å½éę§č” git instaweb
å½ä»¤å³åÆć
å¦ęä½ ä½æēØ Mac ē³»ē»ļ¼ Mac OS X Leopard ē³»ē»å·²ē»é¢å®č£
äŗ Rubyļ¼ę仄 webrick
ę许ęÆä½ ę儽ēéę©ć
å¦ęäøę³ä½æēØ lighttpd åÆåØ instaweb
å½ä»¤ļ¼ä½ éč¦åØę§č”ę¶å å
„ --httpd
åę°ć
$ git instaweb --httpd=webrick
[2009-02-21 10:02:21] INFO WEBrick 1.3.1
[2009-02-21 10:02:21] INFO ruby 1.8.6 (2008-03-03) [universal-darwin9.0]
čæäøŖå½ä»¤åÆåØäŗäøäøŖēå¬ 1234 端å£ē HTTP ęå”åØļ¼å¹¶äøčŖåØęå¼äŗęµč§åØć
čæåÆ¹ä½ ę„诓ååę¹ä¾æć
å½ä½ å·²ē»å®ęäŗå·„ä½å¹¶ę³å
³éčæäøŖęå”åØļ¼ä½ åÆä»„ę§č”åäøäøŖå½ä»¤ļ¼å¹¶å äø --stop
é锹ļ¼
$ git instaweb --httpd=webrick --stop
å¦ęä½ ē°åØę³äøŗä½ ēå¢éęä½ ęē®”ēå¼ęŗé”¹ē®ęē»ēčæč”čæäøŖé”µé¢ļ¼ä½ éč¦éčæę®éē Web ęå”åØę„设置 CGI čę¬ć
äøäŗ Linux åč”ēē软件åŗę gitweb
å
ļ¼åÆä»„éčæ apt
ę dnf
ę„å®č£
ļ¼ä½ åÆä»„å
čÆčÆć
ę„äøę„ę们ę„åæ«éēäŗč§£äøäøå¦ä½ęåØå®č£
GitWebć
é¦å
ļ¼ä½ éč¦č·å¾ Git ēęŗä»£ē ļ¼å®å
å«äŗ GitWeb ļ¼å¹¶åÆä»„ēęčŖå®ä¹ē CGI čę¬ļ¼
$ git clone git://git.kernel.org/pub/scm/git/git.git
$ cd git/
$ make GITWEB_PROJECTROOT="/srv/git" prefix=/usr gitweb
SUBDIR gitweb
SUBDIR ../
make[2]: `GIT-VERSION-FILE' is up to date.
GEN gitweb.cgi
GEN static/gitweb.js
$ sudo cp -Rf gitweb /var/www/
éč¦ę³ØęēęÆļ¼ä½ éč¦åØå½ä»¤äøęå® GITWEB_PROJECTROOT
åéę„让ēØåŗē„éä½ ē Git ēę¬åŗēä½ē½®ć
ē°åØļ¼ä½ éč¦åØ Apache äøä½æēØčæäøŖ CGI čę¬ļ¼ä½ éč¦äøŗę¤ę·»å äøäøŖčęäø»ęŗļ¼
<VirtualHost *:80>
ServerName gitserver
DocumentRoot /var/www/gitweb
<Directory /var/www/gitweb>
Options +ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch
AllowOverride All
order allow,deny
Allow from all
AddHandler cgi-script cgi
DirectoryIndex gitweb.cgi
</Directory>
</VirtualHost>
åꬔęéļ¼GitWeb åÆä»„éčæä»»ä½äøäøŖęÆę CGI ę Perl ēē½ē»ęå”åØę¶č®¾ļ¼å¦ęä½ éč¦ēčÆļ¼ę¶č®¾čµ·ę„åŗčÆ„äøä¼å¾å°é¾ć
ē°åØļ¼ä½ åÆä»„č®æé® http://gitserver/
åØēŗæę„ēä½ ēēę¬åŗć