|
Java电子书:Git团队协作 格式 pdf 电子书 PDF 电子书 Java吧 java8.com
7 V; B& ]: x3 P0 y- |. k6 T/ f0 a. U8 }! O; g3 T; v
7 O$ s+ t% M* W
编号:mudaima-P0153【Java吧 java8.com】' j1 w0 ? o$ V
8 K: k: A! K9 W7 b( Z5 ^
3 e) j: n2 K! z8 T% B7 k4 c; g$ Q
, M2 B% I1 s- N1 v7 A! oJava电子书目录:Johannes Schindelin 序 xi+ G9 W' n: ]' K- j7 A! V
+ x- Y/ }6 N: s/ o6 iMark Atwood 序 xii
* {1 T- z0 \5 u8 Z. e% R" Y# I2 a9 E, g+ \6 W* |% h
前言 xiii$ v' v+ ~& V x
- G( C4 H+ |. H9 U" `
引言 xvii
5 }: p M! @! L& n$ w6 i: n0 y0 f$ Z, b; ?& Z% E
部分 制定工作流
1 ] ~: u& x- o. K( N# s& a8 b/ p
第1 章 团队作战 2
/ v/ M0 P" N9 v, H* B' _6 h5 x
, M8 v7 V, ?4 m& u1.1 团队成员 22 x, o3 s. g5 _5 f) l5 {
/ P: [7 r- H3 |+ I+ } e
1.2 思维策略 4/ T5 m+ O4 Y- o
' B! |6 V( H! O1 l4 k3 H5 ^4 @5 q
1.3 团队会议 6
7 X" t$ K. E) o* s [2 `3 ?( u
* l9 ^& }" Q+ R1.3.1 项目启动 7
! B7 k' G7 F U2 ?7 c7 W7 e9 {5 @; h
1.3.2 追踪进展 7
0 \% J4 c: @+ F1 H% w$ m% X0 G: C9 ~" l: S H" g) l h
1.3.3 培养同理心 9
; T* b* ~* z3 j" ^, g* H( c1 k2 e5 m
1.3.4 回顾 9* G, D0 }3 a d6 q
6 V' j2 |; a9 }1 I& \7 L1.4 Git 中的团队协作 10
, l9 w, |% |" p0 t3 y
6 m; d" p6 J" K' J6 C. C1.5 小结 117 R5 \. O2 \$ Y9 W. F
( _: a8 ?$ z( z3 `$ c! u) ?
第2 章 命令与控制 12: b7 J8 E6 z' W/ N' ^, d4 e9 y
! s; C; N4 T8 o4 }
2.1 项目治理 12. Z1 t4 U, ?- U: ^0 o" ^
! b& r* f1 X1 p1 a
2.1.1 版权和贡献者协议 13
" |. Q" R- I, n6 J# L' m4 u
/ T* W$ \; m) C' y2 `3 O& e2.1.2 分发许可 14# H& w2 M9 N7 w4 y9 W) v6 \( \
/ M# E/ h2 H( Q5 f* V
2.1.3 领导力模型 15, s+ r1 ]0 q5 v0 g2 l
1 t( k& a, [* ^2.1.4 行为守则 15
A j$ k! g* t5 `/ `: |9 i# j5 g' P8 G+ u4 v
2.2 访问模型 16
& m' y. ?6 d( u
+ ~1 K3 n$ T0 F% S1 X, A, y2.2.1 适合分散贡献者仓库的模型 18( J g; }2 j- N
0 m/ S2 E! K# j# S( ]& s, w2.2.2 适合并列贡献者仓库的模型 20& p" u- o% E5 M# T2 w) h; v
* {! Y$ `6 ~. E( B
2.2.3 共同维护的模型 22
7 D% v, T' C$ [( E
+ G }( r1 ?3 H4 \" b" B9 W' ~/ V2.2.4 自定义访问模型 240 Q6 a) r f1 J9 z6 p% g: K5 ~: A
$ v9 K8 Y/ J' m' N
2.3 小结 25- ^/ K+ {5 a1 t
$ s$ J% G: d! y2 q7 Z第3 章 分支策略 26' |; `$ u- ?( U' H
& w, u* J& M3 f" J& h* o e0 ?# k* L- G
3.1 理解分支 263 }8 I" n9 O6 q+ a2 `
9 ]4 Z5 c. @7 T
3.2 挑选约定 27
6 _5 N! p6 }1 s6 R, M
5 e4 j/ t' M( L9 n3.3 几种约定 28
: y Y$ m5 _: f7 @: D7 G' M
" r; S$ W9 r6 s ^* z3.3.1 主线分支开发 28
* \- d+ V! G4 ~# J2 ]8 K% [" R# Y/ y7 v' K
3.3.2 功能分支部署 30. [: w4 s# F2 S, _8 `( k% w
f$ }1 L5 B# A5 d& E7 `) w
3.3.3 状态分支 32
6 o/ Z- T7 ]5 ]( R) t+ [8 ]+ Q- }7 d P& G0 ^
3.3.4 计划部署 351 ]: S6 i# {# f E! n
3 t% f) K5 {6 G8 d( }- t* M
3.4 更新分支 406 |4 R% U5 Y1 |% {% M
3 ?# E6 j8 G# ~- J
3.5 小结 43
7 s# p5 O9 Q4 L0 T/ O
/ R5 A1 s. Y4 m7 x: k第4 章 工作流 459 B0 _5 G6 W, n* _7 c- C- h
$ F/ C) A: ?8 D, I: M& f
4.1 初识工作流 45
) O: N/ P* c9 l( _2 a$ x& B. @: ^
; V7 O) C' i& K, I o; G4 r4.1.1 记录工作过程 46
/ j+ G7 q* V* w1 L! E4 v& n
, E/ h& k% ?' }. C7 T4.1.2 记录编码的决定 463 V- J" H" u* ~3 w# F% O8 ?% K$ t( j
6 {5 k. y; C& R+ Z9 [6 A" E. D
4.2 工单进展 47
3 A1 V, Z0 G$ T# A2 o) h5 ?) S) _3 f/ F8 B
4.3 基本工作流 49
$ u$ u' x H" A. [5 L9 z* m1 N, H4 O+ j& s" t/ L4 E
4.3.1 使用同行评审的可信开发者 50- c& }9 @( N1 ` j8 a$ H) a$ x
- O4 Y6 K, M/ m/ G9 p/ E4.3.2 需要质量保证团队的不可信开发者 51
. s W }. ]! m, H0 n4 \2 i% R4 ?; |1 ?+ j. O# P
4.4 根据计划发布软件 52
% c! r% A! [) R% n' x/ t$ K! U t* k$ a6 B8 W
4.4.1 发布稳定版本 52! _, q9 F& i2 o7 n# J
1 B; D, P& L" q4 e: D' Q7 V4.4.2 正在进行的开发 53& }/ q3 D4 z) p. M H
, _& h W: g+ B3 ]% W* y4.4.3 发布后的补丁 538 v/ L& t9 b: Z& P2 x
) d. d7 I$ P1 ]# A4.5 非软件项目中的协作 54
, g/ q0 R2 P3 p0 B& D: N! t7 P% A* }1 A2 w
4.6 小结 55
; Z6 |% K2 O* j4 `7 [$ W) R" W' o; g: b* }3 z# W( h1 F' z0 b
第二部分 在工作流中使用命令) L, V' b2 b2 V' ^" Z
6 @5 y( v" F7 q第5 章 单人团队 58
$ m& r# F8 G3 y0 J& e5 X U6 d/ g
5.1 基于issue 的版本控制 59
7 i! U4 }8 M7 w1 R4 F X! e0 {+ S2 o
5.2 创建本地仓库 60: p8 ? { W, H+ {
- U/ p, q3 G0 w2 b! M5.2.1 克隆已有的项目 62& {" Q! G) U% M' W! [5 G, R
1 e& p, d' x* c0 s5.2.2 将已有的项目迁移至Git 63
6 x& E" i& x, C* T' f- I" v. Z2 L; j: S
5.2.3 初始化空项目 65! \; N3 @8 U2 s- R
0 _' z$ ^5 \# z' F5.2.4 查看历史记录 65! m' v2 H2 J6 D# f. y2 U
/ n7 f8 |; d$ u$ b; i5.3 使用分支工作 66: I, T$ z8 g! f2 I5 C& O
) U3 u. @: X1 i2 S% @2 P5.3.1 列出分支 665 V9 T% F0 C, `
7 F* k' z, J% b0 p* I' B
5.3.2 更新远程分支列表 67# N. i7 p1 b1 [ K y3 e/ }
3 b" a. `! ?7 R0 H% F" {5.3.3 使用不同的分支 67" k6 J: H$ }" o2 K% ^ G4 `
7 {7 H' w5 s+ @! |5.3.4 创建新的分支 689 G I. K! l- w) \" b _, d$ p% {
7 G& G/ H" v, e5.4 在仓库中添加更改 70
- s# {8 e+ _, G' t3 J* C; ]9 }" K( e- e+ G( Z
5.4.1 在仓库中添加部分文件修改 72: ?0 x) r% [2 G8 O
2 t! P, l G+ m( S0 J
5.4.2 提交部分更改 73
7 x& W: `" w: x; {) q* d5 v# U
/ H8 y. S: e9 Q# t1 t* @# Y7 h% N( R8 L$ i5.4.3 从暂存区移除文件 746 p9 ]# j& J, T
7 X- L2 _- ~8 H" W& J& a5.4.4 编写扩展提交消息 74! }% u1 y" M# a' n* l% A' h6 G
8 q3 k: u; _ {1 h5.4.5 忽略文件 756 l8 ]8 n& v$ o5 R1 f0 e7 s
) X+ x) G6 N- j4 q5 {* B5.5 使用标签 76" z" d: q/ T4 {. F2 ?4 w5 q8 ?. ^$ e
' }3 I2 _( m3 R# L
5.6 连接远程仓库 77
. l9 o, p" ^+ g" Z" e8 `$ s
9 M- u. c, @( S1 A5 {; f5.6.1 创建新的项目 78
/ c. I* T0 j2 {8 c3 d* ^; G) F2 @& L
5.6.2 添加第二个远程连接 788 d. i+ O% c% j4 \- o
/ {2 o' Y" r5 Y, G: o* B. U5.6.3 推送你的更改 79+ a8 c! p( N8 f5 B2 L
/ x* a6 [- s5 f, g) z
5.6.4 分支维护 80
2 J e2 u; F7 i- B+ h) f4 _
& E1 { Y+ J8 W4 v, D3 F5.7 命令指南 81
; c2 z1 o+ t" q, K4 v7 D k/ `
) B' M4 O5 Z2 ?) y7 L5.8 小结 82
0 y) O/ Q0 h1 d" Y1 k+ R( [( F( r7 |( m1 E8 t
第6 章 回滚、还原、重置和变基 83- u5 E. M; l5 [8 u0 [- ?' F
" b4 W9 s1 K8 I" d# }% j9 H' }6.1 实践 83 B; }, v. e- z- y7 E
5 ]2 Q( |' {! S+ a6 }
6.1.1 描述问题 84) E3 F" x b @/ k
$ D |, _8 a5 j( Z$ i
6.1.2 使用分支进行试验性的工作 85- N* X# i5 }# o6 k$ {6 o9 G9 v6 }, \
N$ }4 {/ O% @6 U% Y- f8 t6.2 分步变基 88
2 c8 \* X: c, |6 V1 ~0 V4 T
( X3 @2 s5 {+ K+ {1 W: {% R) o6.2.1 开始变基 880 l% D, K$ t( _7 ^% C! t' W* r
2 Z# W: P1 \, l! q9 L$ [% ?+ Z6.2.2 文件删除造成的变基中冲突 89
8 u5 y% v6 ~- I. P* q/ t" K
; D! j/ t& Q4 F/ k, m: U% u6.2.3 单个文件合并冲突造成的变基中冲突 92, T* I8 K- G( X! [2 v# U8 ^: o
( s( n' `2 _2 c6.3 定位丢失的工作概述 944 v' e4 ~. l" O( h! ?$ N
7 J4 v; x& A) B, D' x$ E, N
6.4 还原文件 97# R; C+ L m1 s0 v
. c( {: f( u- c) k4 V
6.5 使用提交 98
0 {; X+ z: W* O8 n: e: ]+ ]/ C8 S( E
6.5.1 修补提交 990 x7 |5 v2 b* R& Z8 G
/ m |/ ~& D7 U
6.5.2 使用reset 合并提交 99
* \1 h! H7 U* b# Y, {2 |2 k f
7 l% q, k/ ^& o4 A( w4 _. c: `6.5.3 使用交互式变基修改提交 101
" M9 x' E" G) |/ Q& c ^' `- @' E( J/ B* H
6.5.4 撤销分支合并 106
/ z5 H: L. ^3 l$ m/ Q( C. f$ |) B/ L' z% e( A
6.6 撤销共享历史记录 108
% I5 W9 D/ Y. M
/ P2 S9 f. k4 |' s+ M2 J6.6.1 还原之前的提交 108( `$ X1 ^0 f+ v% _# c- ?7 z4 v
# E G# H- b0 {6 h$ Y3 j6.6.2 撤销共享分支的合并 109
, Y. s) N" n# e3 H! D
& U8 e3 T) u. D5 @0 J7 O2 t6.7 真正移除历史记录 114
$ X6 {) o, j# S0 s! Q/ H
* v% x) C# I; ? e S6.8 命令指南 115( t: N( d) @1 p! i- B. P
3 m) G+ |7 |/ v4 ?& V _" u% I( s6.9 小结 116! Q4 n0 I* E# [" P( A- s9 b
! K$ I# s7 v5 e6 _. C; C2 f9 C
第7 章 多人团队 118# _/ v5 _9 A9 k5 S: i/ S
( G3 \ \# T7 J3 X" `* p* D
7.1 设置项目 119
: j4 }7 }4 {# f+ ^6 e8 [, g) B
+ A: y E F3 O* E# G7.1.1 创建新项目 119
1 H2 N7 Z3 \5 v- \
4 f6 x5 _: F% z$ X7.1.2 建立权限管理 120
# l7 k2 Z, q: _$ l8 |& L
( Y+ c8 I; \# f7 T* G3 s7.1.3 上传项目仓库 121
8 D3 I9 l- H7 }* \8 I* M# ?" P) ]! J$ _2 M X R
7.1.4 在README 中记录项目 123
! [# |4 o' k* v& r2 n
& f- B7 z+ y5 A) p Z% Z8 g8 x* z7.2 设置开发者 124( H P' J% U4 u: u# S/ K+ Y
4 P; ?; X. T( e3 F7.2.1 消费者 124
$ m( z4 e/ O0 ?6 c' J8 N* x: z/ ~4 `7 R5 c0 e+ M/ s2 }
7.2.2 贡献者 126
, Q" B+ {+ \" g1 A/ K+ K0 c" ]% _ v1 k$ E7 U4 h
7.2.3 维护者 127
" v- C: j& t5 [9 X, ?) j1 m4 e1 x) a* _1 p0 _% J
7.3 参与开发 1285 r! s8 ]! s, n% m& z
$ |% P/ a0 o$ G7.3.1 构建完美的提交 128& I5 r* s$ @9 O% G
( B6 J$ ], W' ?% z0 t) f
7.3.2 保持分支 131
. l" L' `( d7 d! N& L- Q$ ^7 y* {7 U. b- s6 w7 o
7.3.3 评审工作 133
6 g, a( b+ D* e. @. V5 b8 ]$ T. v L2 x f3 j7 j+ d3 x* U' X2 c1 ^
7.3.4 合并完成的工作 1356 e8 \4 g, A$ b; | d
6 f7 q* g+ q' L, U7.3.5 解决合并和变基冲突 136$ z1 d- L3 H$ ]9 U1 G2 q
( _ l8 U( W1 c9 W& g7.3.6 发布工作 1370 R) [7 Q" u- q& Z6 ~* Z# L) u( H
7 N0 ]' o8 R! }3 z( o7.4 样例工作流 138
4 d9 ~8 g# `( j9 ?
2 k ?2 N6 q0 w1 A+ _7.4.1 基于冲刺的工作流 138
- Y/ ]2 }& w, u1 \
. `7 O0 B# x, m1 _' P' C& @/ q% j0 A7.4.2 没有同行评审的可信开发者 141
: i& g, Y, Z4 ~. Q0 c
( l$ x# C3 B. K; L$ P7.4.3 需要独立质量保证的不可信开发者 1421 Q* H+ D* s3 @6 v1 G* p
1 F- k& D0 v& y3 z0 i4 D' k
7.5 小结 1437 n% W& F' {: ]5 X: u6 E$ [
# e( E3 D0 w$ B
第8 章 准备评审 144! r# u7 m) e- T) S2 H
% V8 J/ [$ d8 E4 N8.1 评审类型 144
5 H Z! c% c* r9 ]+ n2 e" B3 m* c& O
8.2 评审者类型 1451 a7 l5 t- c3 Z* w8 A& w
+ v- ?. {. L+ e4 S6 R8.3 用于代码评审的软件 146
0 T" h5 {& ~" c! c, g
9 t& d; \2 d1 ?8.4 评审issue 1462 n+ r; D8 T6 T( k' P# ^& _" H
6 i8 U/ ~( _( X8 q6 {9 z; @8.5 应用提议更改 1478 a1 i- ^6 A3 A9 Y
1 l# U: K' d& _7 U8.5.1 共享仓库的设置 147% Z/ f+ G% G4 R8 p e, ^
- _) D3 |/ f% O$ x& [# e8.5.2 派生仓库的设置 148
2 r5 x- _% I7 W9 u9 S; r1 |9 I8 s/ b2 u/ ?) ]) m* X
8.5.3 签出提议分支 148
8 {" ?! g% B7 q- Z! f: W/ j5 A* x# |* g- t$ u+ B7 b# i* x# r
8.6 评审提议的更改 149
" e) s8 n# d1 t( Z4 h$ t, T$ e, R* X5 n8 X7 B5 X( ?
8.7 准备你的反馈 151
. L6 H8 T; o. q6 R( v( x9 x4 a0 W3 E( Q, ]8 K3 E! }
8.8 提交你的评估结果 151# Z+ i, g$ {5 X* a& R/ e: p( z6 g
$ Z6 G0 h% D& [1 \( i4 P( F8.9 完成评审 152
* o- T' g9 ^' V% i% ?3 l. B5 L0 V1 Y$ s
8.10 小结 1536 M! d" m: ^+ i: D' E2 n) J
: p2 j3 v9 ?. o1 d; P* @
第9 章 寻找并修复bug 154! ?! p+ D6 @+ B# F6 C, z9 X5 q
2 @% M! O" T$ T; }& T5 q9.1 使用stash 进行紧急的bug 修复 155* G& Y4 L& E5 L
7 @: y+ e* @0 {7 w
9.2 比较历史记录的研究 157
! x5 n. h& o0 z/ i a2 q
- X1 a; P# f4 |, Y, @9.3 使用blame 调查文件历史版本 159$ S& T7 W7 t! y
. P. Z. v" y- U7 t, \( _$ l+ A/ C
9.4 使用bisect 重演历史 161
3 }+ h- I' |: t0 A4 h, O5 @7 X! S. c& J' b3 g5 c `( F
9.5 小结 1637 I$ z9 I) @/ O ]
/ o4 {8 }/ X" n7 r( T第三部分 Git 托管平台
4 }1 ~3 K" _0 }$ L% v
' z7 ^' K/ ^* [6 `$ ~8 t; K第10 章 GitHub 上的开源项目 166
0 ?+ c; i$ J+ B8 [/ l; \! y5 A3 _" T; c& p
10.1 开始使用GitHub 167
, W' a' T I4 j, c9 X. n+ q3 q$ r w
10.1.1 创建账户 167
3 N# n% X: N V* `4 y: u, `, C% n* U& j% x e2 w; X5 Y
10.1.2 创建组织 169& V/ B6 w9 u) r! q
# ?& b8 c0 ^+ Z3 ~& X10.1.3 个人仓库 1708 M3 @, l+ e$ C
% `% {; g$ ~+ q/ N# j }6 ^( j+ i
10.2 使用GitHub 上的公开仓库 177
8 W [5 n' l. h. ^% U; ^; W% j5 r- x$ z: e
10.2.1 下载仓库快照 1773 k# D, |. c0 m- V& }8 F
' C) \2 d% Y/ L, {1 O10.2.2 在本地工作 178
' _% _4 a& _5 P8 Z
6 L/ g% _, t( M; g2 ]+ q5 U' Y! ]7 d& a10.3 为项目做出贡献 181
3 b: H5 P! { y+ ^! D+ h, g
& ]3 r; z U9 M- K7 n, T( ?10.3.1 使用issue 跟踪更改 181
2 R1 x6 X8 h% n. E, l% G3 p$ N1 A1 S7 v' _
10.3.2 派生项目 182( n% h' S3 I* x! N6 w
) d* F. q6 X- V4 f/ I- U! E+ l) D
10.3.3 创建拉取请求 182+ Q/ q7 |: x0 n3 n1 v% [
) C" ~% `& R- d$ _
10.4 运营你自己的项目 184! z* E+ Y: I) N# @
! c! C! [# v1 T! L, {& e- c
10.4.1 创建项目仓库 184
, l) d6 p5 b U/ l" z' E5 O) l6 e) a2 q6 ]8 @. ^0 }
10.4.2 授权共同维护 185
$ @/ C+ y4 U% d; n& s6 P" H. n
- K" G0 X0 P; z! `" ]3 e( a2 M" a10.4.3 评审并接受拉取请求 186
" T# t. M! F7 {9 ^) }4 N
" [+ T# a1 J+ x' K/ f# D10.4.4 发生合并冲突的拉取请求 187
2 ?) o3 A7 b$ J5 C+ h) N5 `1 M. \( `! v% ^- f" J( ~
10.5 小结 1889 q6 W( @6 D: k
/ y+ c# |; q) ^7 Y) x: c
第11 章 Bitbucket 上的私有团队工作 189
5 ^, \- Y; h( z8 y
3 s4 |( B M( G$ k( Q! ]8 `11.1 非公开项目的项目治理 189
' m; ]; J# \5 C: `. I
$ R8 y3 P* y1 \5 c. b11.2 开始使用 190
( v! I+ Z; _5 B) t5 Y$ I+ o: }5 U0 }3 a/ o
11.2.1 创建账户 190- g: L$ x) Y$ }& Z! g& W
# k1 s$ M# L, A! b9 U6 R8 ]11.2.2 在欢迎页面创建私有项目 192
: d% k2 G+ `9 y+ j& G7 t
) m. J! S8 ~1 o0 M11.2.3 从信息中心创建私有项目 193
v' I1 t% p2 i2 r: G: `5 n; L* T$ W
11.2.4 设置你的新仓库 194
$ L# G* e% I% u+ u9 J+ A- n" B
+ ]1 g- a/ c" X! t* x11.2.5 探索你的项目 196- O- S" x# R. Z1 V3 `
# P0 [* v f2 ~+ i* b/ j# A
11.2.6 编辑仓库中的文件 1974 R: I& }+ A2 i' \* a
& g% D* T7 V" d* x, i8 ~ M$ ?- d' A11.3 项目设置 199% |2 Y: j1 Z' X( S" k
: r2 r/ r% g1 Y( ~ J0 ?$ s
11.3.1 Wiki 页面中的项目文档 2002 @ o2 U3 t/ `0 l% w& r- j
% `7 G' b8 N! i8 c
11.3.2 使用issue 跟踪你的更改 202/ X9 D s' {4 t
~- f* f. s$ o7 Q* u* M2 x
11.4 访问控制 205. i" z2 D O$ A0 _9 ^1 \
7 s8 [9 ~# v0 f' k9 N0 v11.4.1 共享权限 207" q% [- I) ?$ b* {7 @
( A6 }5 p+ W# [11.4.2 每个开发者分别派生项目 207 X2 R. M& ~. j0 l
/ C/ F8 ]) J; w" A" k( J- }" i
11.4.3 通过保护分支限制访问 207/ G X! p4 C+ w& u, S' L
5 u$ d& L; d+ @# s& g7 w
11.5 拉取请求 2096 r+ a" z! P/ m! y3 N& B' W
4 S. s8 L- s" h" m& h
11.5.1 提交拉取请求 209
' s" A/ O4 b! A' r- a5 j
' f% p% W7 {! E* G11.5.2 接受拉取请求 210* j r% S; ]8 V$ }% _: d
- \. C" m) \7 j# d- j
11.6 使用Atlassian Connect 扩展Bitbucket 210
8 M) Q4 D `/ ~. M) W, Q8 R) Y" Y1 j5 w- u. Q8 y
11.7 小结 212$ _# X9 B1 f' M7 I' `2 I
4 m6 X2 F7 v; a. e d
第12 章 GitLab 上自行管理的协作 213
0 j+ @" {: a- H/ S
+ K$ ^6 z2 B* N5 ~% R12.1 入门 2133 f; G( x/ e: p( I% V
( u9 ?5 w5 O9 i; K7 n8 S' D6 O12.1.1 安装GitLab 213
Q+ W5 y9 K: m: y; o6 {6 i1 e" b" \* s9 x3 W' V( F
12.1.2 设置管理账户 215" d# n1 Y1 m; C& J6 F( ^# |6 t! y+ c
# I- T3 e2 X! [ m) s
12.1.3 管理信息中心 2160 R# S7 M4 M; p7 B5 x
% y4 g0 S) G6 o0 a! ]
12.2 项目 219- [& Y* @- T, t4 ?5 {
7 s3 U+ }3 N2 N% r+ C/ X* @
12.3 用户账户 221
' @" w* Z) h7 o; A5 s5 F) f E: M3 ?. j
12.3.1 创建用户账户 221
1 K8 Q$ O9 l: H( y0 T. P
# G5 p& j: _' g& a* [+ I) H2 A/ E- p$ W12.3.2 添加项目成员 223
# ?; i3 V* b8 \0 ~0 W7 @6 r
7 i0 w5 A; N, s) j, A; G' a4 o) I12.4 群组 224
/ D, i: I+ b; \8 G h* ]0 z- \( t& j8 \+ Y
12.4.1 添加群组成员 2253 I& l6 [' p" P& T
! m" R. t3 L1 w/ d12.4.2 将项目添加到群组 227
% N6 @8 V5 L; R c. M* x8 x% t5 e: x
12.5 访问控制 228
! p* |9 [, o1 y8 C2 O; y+ `
* L. E4 I+ n" G' s; e# U12.5.1 项目可见性 228! Y3 N+ e+ R" B$ ?
# O$ D3 Q9 E8 }: h; B+ y
12.5.2 使用项目角色限制活动 229' [/ [$ w4 q; d' ?6 q
2 y# q( f; n+ U/ C) ~9 a7 c
12.5.3 使用保护分支限制访问 230, }0 \1 V; ?/ w. M
* s5 s" T& E J8 \
12.6 里程碑 231
+ A6 N6 W' K6 _; o8 z5 w; p
$ t, M A1 E& t" V! Y: d12.7 小结 232
3 V2 Z( C) R z7 A+ b3 |
- R5 i; X$ A: y5 u6 B附录A 奶油塔 233/ h: z! r4 [2 G3 F) t- k; A$ @
& Z, ?5 r( M1 L: X, l
附录B 安装版本的Git 235! w3 N- ?! F+ F1 k
' `% s1 y' i: _$ e5 y附录C 配置Git 240
: h% s7 m, X! C- g" \9 l0 n
8 \5 S3 p# _; C& i N附录D SSH 密钥 245
% ]( D! U9 s1 H5 j6 r( O/ o, d$ ]- ^( N8 a
关于作者 248
% H0 |' Z# v8 \1 x
' l8 r; j; k* x9 a/ ~6 n" m关于封面 248
v: ^4 ]% X% m0 k3 B; T! f! V2 V
百度云盘下载地址(完全免费-绝无套路):% J: ?) C/ i% _' X/ L/ r2 O
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|