|
Java电子书:Git团队协作 格式 pdf 电子书 PDF 电子书 Java吧 java8.com
, q: V! m; ^' }5 j7 A9 N
$ ?& }+ X+ e/ q: K) |
3 v$ h6 K( d6 B% r编号:mudaima-P0153【Java吧 java8.com】
# R' P, c4 }9 I0 E3 `3 q; E. w8 a- Q. y
6 f2 N3 X; s! a# n. E
7 [4 U. y6 L/ Q( P( e
Java电子书目录:Johannes Schindelin 序 xi, R+ V* k( ^, ^: `0 D. P
6 X Y. c! X7 tMark Atwood 序 xii
2 a& u( c8 r) E; r2 A7 O d5 q2 @9 P, [" D! E3 T2 r
前言 xiii& [' Z8 n- E8 M6 x. X- V# v
7 I- b) w. `6 c1 t8 s) {# ~* a& r
引言 xvii) [+ W! F0 ]3 }! Z0 X
; ]3 O. j4 z$ v) x' Q3 ]! @
部分 制定工作流
: W5 J' u' A* ?# a7 S& V$ E- l/ S% w; b6 h
第1 章 团队作战 24 Z3 J, \+ [6 C2 |; o% @- F" p
6 Y) i5 s' y! L4 {& _. ~1 Y/ I% g
1.1 团队成员 2
6 \$ N! s& D6 O9 m" U S. `" q, {4 _
1.2 思维策略 4
5 U! j! U$ B3 ^ ]6 G
) x* T, O& R+ A" e& j* v1.3 团队会议 6. ~5 s& ?% G7 P/ l6 x
4 s" p0 {% e" G7 b1.3.1 项目启动 7$ n" d6 E. C! S8 s. G
( t$ m, o! q( B. H2 }( j; M2 e1.3.2 追踪进展 7
9 J* w# O C6 f1 _7 @+ k
$ k( e$ T+ l7 b" V5 [1.3.3 培养同理心 9, j8 d. n/ n# h/ c }' [
; S" {' Z% D1 |. [1.3.4 回顾 9
8 g4 a( }5 H; E2 v
+ \( I( q( S9 h. B; J! w; J" n1.4 Git 中的团队协作 10; K" L: l% i$ G
7 F) q" o! l$ ~* \
1.5 小结 117 q. F8 |2 X2 X% Z3 x
: w' W1 z8 A8 \5 w/ l第2 章 命令与控制 12 S) U& z" D) F5 m
1 k6 h) ~6 D6 Y& Z) O$ M' \+ G2.1 项目治理 124 O$ F" k4 a j* i: U( n; L; R
" {8 ?/ H/ u5 o& g* k D2.1.1 版权和贡献者协议 13
" q9 i- }! ]& Z/ U$ o2 m$ E; A0 p& i( ?5 Y+ h, L# ?
2.1.2 分发许可 14: B2 X- ?, e- u* ]4 Y8 e$ n$ @
- F; j) {4 @* y: u2 b
2.1.3 领导力模型 15
1 ?0 s; b, @. Y* F' V# r& i3 H& @' |; E0 a( E0 \
2.1.4 行为守则 15
0 i! Z4 [! C9 M! r1 p* e6 x/ W2 m4 E" R- ]. I
2.2 访问模型 16% L; A: G) b! K0 X+ `9 q+ Q8 V
5 |- W; P# }( M1 D! M: {2.2.1 适合分散贡献者仓库的模型 18
7 ?, w3 M9 v* p0 k' M+ m/ ?& S; b2 A, w. \
2.2.2 适合并列贡献者仓库的模型 20& j% ^: e2 F: p8 E" o: }
" u! n! @1 C f, F2.2.3 共同维护的模型 22' x; H+ d5 ^9 C0 j# o5 V# [2 [
* E9 n H, d% }7 C+ J) D, [! e
2.2.4 自定义访问模型 24/ O5 e \- u- H. J3 X0 Q- G
' f3 a! F# @/ ]
2.3 小结 25
0 L0 Q1 B5 V5 c4 h3 m/ U1 p- X, s+ \9 U; p9 m) t& b+ i
第3 章 分支策略 26
7 b6 a, Y7 I7 p9 C) S" ?: g/ H3 k$ n: e7 |+ v |4 |- I
3.1 理解分支 260 x- s/ g# {! V6 O( }
. [" L* l8 E+ {/ \: ]' D3 t: Z: z0 ^3.2 挑选约定 27
9 `' t! w3 d3 B ]8 Y7 P' y$ R5 {- S" \( ?- N* f* ?+ `6 R6 w
3.3 几种约定 28
* m* K5 K C, K) }- C( p0 e- l
4 X; E8 F3 Z) ^% O4 w* u4 M& w3.3.1 主线分支开发 28
5 [- [: F/ u, L& Y; H/ c8 n0 H; [/ S1 U4 [6 ?* S* G
3.3.2 功能分支部署 302 s6 Y4 p0 b' x5 k* s, B
R7 b; v4 H; n" D
3.3.3 状态分支 328 j3 b/ P% z2 q1 k8 c: k& o
$ U5 b4 h) W1 P' X5 K0 Q4 O0 |* S3.3.4 计划部署 356 M- r$ E* p9 U) {$ w
5 \% S) R5 k6 b" `$ G
3.4 更新分支 40. s. d) ?: e4 t) U7 D
, b) ], m- b; `7 V0 ~ \3 }$ e2 s& S
3.5 小结 43
4 O) q6 R7 P+ ~! _% N* i2 D% Y: d+ n+ G2 U0 m
第4 章 工作流 45
( C6 c' W9 @7 f; t- T. E& A3 Q, W, K; X$ A; z3 a; ?% ?; ^. J( S* d
4.1 初识工作流 456 a s: X' Z) c2 q0 t, w6 H
5 h" @+ b, I. |; B* {
4.1.1 记录工作过程 46
9 M8 N7 U0 o& [7 q1 P. ^; c# j3 X$ Q: b1 P( p
4.1.2 记录编码的决定 46+ r0 j# O$ [) a+ X, l* ?
" }8 i# n6 n. S& Y
4.2 工单进展 47
& B6 d; J6 T5 |* V) S+ r, l8 o' r7 |% A: d
4.3 基本工作流 49
2 X1 w! L! G3 v V: |3 r
3 R: e2 ~" ~+ {1 C: w' o: g! x4.3.1 使用同行评审的可信开发者 50* _ @ o$ O+ o# `- D! e/ y' ^
6 B M# a9 }0 t; k {& w4.3.2 需要质量保证团队的不可信开发者 514 f* l& M: g3 A2 z" T
, v5 Z9 e6 e4 M) x0 \4.4 根据计划发布软件 52) T& T4 Q7 l# {/ Z. U
3 K- ?0 W) F. Z& [+ ^4.4.1 发布稳定版本 52" ^8 O: r8 j6 _0 H! j" ~
; I9 ^& v1 u) Z! y: f4.4.2 正在进行的开发 53
/ L/ P3 |8 L @5 ?7 `2 B
* w2 _8 y0 Q/ e- U0 T4 }5 v) T4.4.3 发布后的补丁 53* M: X. a' t q9 {9 p
7 o" _ g) {8 [6 [4 g# U
4.5 非软件项目中的协作 54
c/ k: {$ C' _7 ?( l9 n' ^
, U/ P1 {# Z+ Y; E" n1 H2 t( \4.6 小结 55
4 t1 w8 x; U# T/ a0 r; H% u
, t4 x' K3 j. D第二部分 在工作流中使用命令3 g' i7 F V+ W( E& {" e
' e' e5 T- V' R+ |: o' b/ e第5 章 单人团队 58
! @) [; f( w: R* |. G0 _& V/ t- c# q. A" |+ k8 ?7 F: _
5.1 基于issue 的版本控制 598 Y) b; D2 ?0 J/ Y9 u
7 Z+ v6 R, O _' H, R" Z3 }4 Y6 L5.2 创建本地仓库 60
3 z$ N: W" f+ N2 R6 X5 N, a
}; r$ X+ L3 @' l( v) ~' T5.2.1 克隆已有的项目 62
. t) R/ [, F+ @. ~4 x! F9 X
0 e9 h9 n) @+ G6 P* |/ w5.2.2 将已有的项目迁移至Git 63# E7 |# J1 q9 G5 D- ~8 u" B m
' O( K _0 H8 t9 q0 A; i% O5 F2 b+ T
5.2.3 初始化空项目 65: s4 H, B- Y1 b! Y8 d% T% J: |
1 K9 u/ N1 [2 }7 S8 n0 |9 {5.2.4 查看历史记录 653 V. T+ H6 ?6 h. v1 U
0 g* _, m( ]" \7 X8 I
5.3 使用分支工作 66/ @- U" i( ^" k; v8 [; `/ B% ~
9 P0 T" d6 @4 J5.3.1 列出分支 663 o1 k, q- \; r$ l7 s4 r
$ |& S7 O# \+ L5.3.2 更新远程分支列表 67! T, l: `8 S3 b. x
7 A$ C" ~* X8 y2 d2 o5.3.3 使用不同的分支 67
- V2 Q {$ ?$ X8 m( }/ q- B/ \$ M: m0 f- n2 y+ \4 R
5.3.4 创建新的分支 68 l) y/ ]" i6 ?* @
; o6 M) J4 W3 q* V X/ Q0 G5.4 在仓库中添加更改 70% C* E/ y% P: T# g( q3 A2 G) q
/ q) P1 N! D" ?; e$ x4 ?
5.4.1 在仓库中添加部分文件修改 72
$ _: \" G- o: V! h: z* p/ q+ d4 A% [! k) x' q. o2 ^
5.4.2 提交部分更改 732 l; ]1 O: P9 P
5 h: N J2 G. w5 F# W5.4.3 从暂存区移除文件 74
* L! G& a8 w- G+ {6 P; o7 p& T
% O2 L- ]- Y% w% m0 B/ R1 b |5.4.4 编写扩展提交消息 74
6 h% v$ @( ]0 P9 v* k
( `' b& p7 M: l! k3 C+ }5.4.5 忽略文件 75 ?; J. y/ e: c& s6 o/ H
, z8 i7 _* F& B& `5.5 使用标签 76
' Q" D6 r$ f. ^0 ^- V" z l, I& U; T7 R9 k6 B( }3 h
5.6 连接远程仓库 77
& d9 n: c$ m# _& h2 l3 N% l/ R0 I9 I4 C" n( H% o
5.6.1 创建新的项目 78
4 A. N: T$ ~3 n: }8 X7 G
3 g; S, i g$ P$ ]! K5.6.2 添加第二个远程连接 78$ E9 `8 h7 Y8 i7 i+ ^
1 o: z! h1 v7 Q N8 O2 V& X/ j* v5.6.3 推送你的更改 79: K5 \8 ^5 b5 J/ J A
1 H' }% |. ]. T. F \) L M
5.6.4 分支维护 80; \( n t9 H" K/ ]" Q( U' O
: ~/ r; M4 d0 U1 G9 m4 F
5.7 命令指南 818 I1 U$ S$ F, H9 d
) p8 G, s% _% u0 U1 p( v5.8 小结 824 M3 U- b* s( L: I, B8 I( b d
# @( E9 b! N4 Z. u) k, Z5 P第6 章 回滚、还原、重置和变基 83. d# T' c7 P& E+ B# |; U
& U. v/ r: y9 |8 a4 \' U3 H6.1 实践 83
- ^9 O9 ^' w# Z( N: M/ o, B( O
6.1.1 描述问题 842 i) g0 V- ]- v
" T) W( U/ k- `/ u5 A, h) n
6.1.2 使用分支进行试验性的工作 85& `: `2 x: D& {9 x& a
: U/ @5 h2 r6 m& ]4 [7 |0 }6.2 分步变基 88; h f- [( y) I' q+ I; t7 w
" P+ |) ?) V: X! ?, c; u2 |
6.2.1 开始变基 88( ^8 x o* x5 R# r& `" S/ N" b9 m
: r+ ?% d$ L. @6 _
6.2.2 文件删除造成的变基中冲突 897 ? E0 K+ `9 m- k5 J2 y; z" ^
' k# `2 H0 H% ` }; w' N6.2.3 单个文件合并冲突造成的变基中冲突 92, Q. J; O3 u' V
K, g& C+ W: \1 e& l* y" Z4 d
6.3 定位丢失的工作概述 94! v7 m3 S" R) f0 R0 T* W
, Q+ s5 c7 o) F4 j( e7 Y
6.4 还原文件 97
- f: X8 |/ w7 U! V8 U* {
9 S9 n6 F; ^- o6.5 使用提交 98( C+ k2 ], j1 U
. M8 N1 N- l2 g7 G/ C/ @6.5.1 修补提交 99 v" E- X* c. x$ G6 u
1 y9 Z$ H/ J& }" P5 z0 s6.5.2 使用reset 合并提交 99
6 U5 l. U5 ^/ |; |' `) N& A" _& V/ g, S$ U s/ [3 p' V, b3 B: k/ Z
6.5.3 使用交互式变基修改提交 101' V$ _ |5 W- A. D+ |0 P0 f1 Z; s9 P
" z) z- [/ k7 I9 l% p, r+ Q" \
6.5.4 撤销分支合并 1061 ?7 L, L, g# L
& y M! H8 a+ J) W# [% [0 Q- A6.6 撤销共享历史记录 1082 j6 a& v/ v( @* P0 e/ V
7 G& V+ m. F% v) |3 R" e6 T- ]6.6.1 还原之前的提交 108; u8 |- y( U2 y$ t, T& \0 s; O
( h4 w) i' N8 Z9 `2 } Q Y
6.6.2 撤销共享分支的合并 109/ U1 ~& R) @1 Y1 g e
: u# [( r( R, w$ x) \+ g% \
6.7 真正移除历史记录 1147 c2 @' `1 v( h" z c" D7 D! O
8 Y, [) y* y" X9 r
6.8 命令指南 115- F( E5 B$ u% y1 B2 J
T$ q: E. d) `: b
6.9 小结 116
" }" x3 A2 y& q a4 B [7 b8 F# _: `3 o! @' e2 d! C
第7 章 多人团队 1183 U$ E6 v1 Q7 F/ \7 [2 Y
. i% ?8 ]. H, N! C0 u% y7.1 设置项目 119, i/ b0 b+ r, f9 y) i+ B# }9 K
+ y( y$ q. u) C& p' y7.1.1 创建新项目 119
+ C( O5 o" ]! m' k! j8 i
- H: @" ?( o& c4 E$ }7.1.2 建立权限管理 120
+ {3 t0 w+ U$ M0 }9 {4 v
) e" H( c! m# L7.1.3 上传项目仓库 121
4 L) Y; F* U2 a# G& C: A+ l& B6 c
+ \4 m. ?2 R% q7.1.4 在README 中记录项目 123
: _) S1 A, T# ]% {
2 d X4 b) Y; I _$ V7.2 设置开发者 124
* C$ W3 t1 f7 l' h P% W
( E; O2 Q0 E, D0 x- ~8 q7 f7.2.1 消费者 124
1 ]6 Q4 ?" c0 q8 K! P; e3 Q# S% V9 a4 q
- Z; K. @9 }: }/ v7.2.2 贡献者 126) _( @/ u. f c% F! @
; `5 H; b% l# J0 [; l' O; p7.2.3 维护者 127
0 A; M6 c8 p- c) M
9 N' K% J% T: U+ k7.3 参与开发 1283 l; h) H$ W L" _ a0 }1 X( @
/ J2 F% } V5 u t7.3.1 构建完美的提交 128; E9 S* U& D" y! X% J# Z
1 A8 a) N0 a. `7.3.2 保持分支 1312 l9 K5 [5 L( Y7 s; h- P; q2 {
; s- `7 B6 r% r; S7.3.3 评审工作 133
$ i! D9 Z' t) d0 V" L2 X& E! q% k4 j$ t7 T1 Y V9 H s9 d( d q% P
7.3.4 合并完成的工作 1355 } s5 F z& j' L$ Z9 F
3 f, q+ R8 x1 i4 d
7.3.5 解决合并和变基冲突 136. I# t% w3 Z- B. \7 K
@$ I$ ?( ? |: S5 M& O( T5 f
7.3.6 发布工作 1374 q+ l ]' c m2 k1 B# t8 v
7 P) J# t9 G8 P% n; S
7.4 样例工作流 138
0 v! \& S% y! y2 Y0 v3 \& {2 O, h' \2 f3 @0 o0 T# w
7.4.1 基于冲刺的工作流 1384 q6 ?$ w1 t h* T- ?# x
4 ?3 J( ]! u$ X$ B2 Y- F
7.4.2 没有同行评审的可信开发者 141
5 ]: ]& x1 t3 W
: j8 b# u0 E @% P8 F4 E2 ^2 s7.4.3 需要独立质量保证的不可信开发者 142% x4 D6 P8 Q F4 s
, B- d4 {# E/ A$ `7.5 小结 143
$ O. W/ _; Z9 @, r- @
' H2 J- P! C2 g. h' `$ S6 F第8 章 准备评审 144
: r( K3 U' j6 K4 K, E
& V; @1 i7 X ?0 H2 C7 n2 s2 {; x8.1 评审类型 144
5 G7 G' J- G) D0 V- n
+ T- {5 ^& \* L1 W5 E$ s8.2 评审者类型 145
) F. D6 ?) l& k+ c: Z C6 W7 k4 F( B2 [3 p; S& k
8.3 用于代码评审的软件 146
8 ]4 E( _" }1 z+ {# i+ d2 a% ^
g3 E: k8 C% m- P( e6 S8.4 评审issue 146
% Y1 F" H5 i7 T# Q
; N( j) ? j% v! b. X) \8.5 应用提议更改 147- c' M! J, g! K L
( K. p$ Z4 |: H4 e; W2 E
8.5.1 共享仓库的设置 1470 N+ A- S" D- x% }, {) u! H
0 Z7 Q5 Y4 J; E4 ?, y7 Z- q& u
8.5.2 派生仓库的设置 148
. a4 P7 R& s4 O8 z( J' G- z4 N* ~" ~6 l; x
8.5.3 签出提议分支 148
7 I9 F! T4 H4 v: H, _: _) @" e* e- h5 [7 q: @2 f, W8 w9 P
8.6 评审提议的更改 1497 _( \4 U% l) C M! l# ~- Q+ U5 V
/ ]/ v, L6 F" c8.7 准备你的反馈 1514 f# L4 b* y9 C& \7 e9 P
% U1 t1 B; W: c J2 l3 {; B
8.8 提交你的评估结果 151
, o3 m2 Q# h3 p* J7 ?/ x; Q
# A" v3 \+ l/ b, c( k" O$ @8.9 完成评审 152/ `: ^3 x- |1 W% k/ b: ]% h) Q
% \- t/ T9 a2 q) C( P. w: O Q
8.10 小结 153
( g- o' q7 g$ k. v( H/ Q: y7 W' d- d: J1 K
第9 章 寻找并修复bug 154
9 d2 `1 t% _' ~, K+ y( m# _4 Z# I1 Y6 c% B
9.1 使用stash 进行紧急的bug 修复 155) _* [+ ]; {2 ` p
! W) S6 S4 y. n3 B! p
9.2 比较历史记录的研究 157
- A3 J0 a7 N) }9 l
. [) L7 Q2 u' Z4 G! t. g4 m9.3 使用blame 调查文件历史版本 1598 i9 ]7 }" x+ w* M. T! R& ]/ B) c
4 y; i1 ^8 b2 P+ V/ h0 A9 R
9.4 使用bisect 重演历史 161* v H3 r0 d+ W) z4 s# K
% E* q9 k4 V- P
9.5 小结 1631 W+ j! R' Q" [* ~
9 L& K: C9 K) F- W& l4 j6 ]第三部分 Git 托管平台1 a; w9 k9 u$ i; ~; w
" U* o& C1 V8 x* ^) c l; m$ f1 |
第10 章 GitHub 上的开源项目 1665 `6 j( G a8 [
- h" ~8 h$ e+ n! m. e4 A10.1 开始使用GitHub 167/ J( O+ Z7 |3 F$ ~( g0 Q8 Y
% Z. i/ S& N3 k8 h/ V1 A1 q10.1.1 创建账户 167
- q8 a- M V6 O( e% g. j: M/ e& y8 D7 X, b8 c: V
10.1.2 创建组织 169
9 B! c2 c4 m7 x- r
6 V( @/ c. ? W) D; N( I0 Q. f10.1.3 个人仓库 170
2 L+ y2 Y7 d8 v. C* [
A1 @1 P8 g, S% d( a10.2 使用GitHub 上的公开仓库 177
. h T0 [) F+ e4 q1 U# r
! h4 m& m! t) ^% o7 _10.2.1 下载仓库快照 1773 ]2 P" ^! e( H U8 J" |# V
/ n2 ~" j+ F$ k4 f! p* v
10.2.2 在本地工作 178: t# J% M2 O5 \% E/ {9 x4 V
4 I1 b/ f2 k7 R, Z0 c6 Z& S4 ]. m10.3 为项目做出贡献 181
/ w6 T8 w/ a5 H" H! O2 A# q; w
% e& x( e! P& A& _+ H' ?10.3.1 使用issue 跟踪更改 181) o( |# X! X M+ |. |9 u+ T9 c
/ J7 c! {' |! c6 v ]10.3.2 派生项目 182
7 W, ]6 K4 E" X1 M4 o& ^5 J/ K5 A- H# d3 a' Z* m" ]* ~
10.3.3 创建拉取请求 182; P0 [2 s& x" Y9 G1 A" \5 _' a3 ]
+ O5 T5 v. p/ @$ n$ r
10.4 运营你自己的项目 184
3 [; D# K; y2 g9 u3 l1 k. ?
! @( t$ e" f0 H" v10.4.1 创建项目仓库 1840 p9 G. J# R9 f. p. i
1 ^0 |* p8 n3 i& ? l
10.4.2 授权共同维护 185' K5 v, S% u) W: E0 C! C
, E) |9 w6 }2 ~+ o10.4.3 评审并接受拉取请求 186
0 Y, | ^" G1 w8 R+ b* g, ]7 g# W# c! \+ b# c5 b
10.4.4 发生合并冲突的拉取请求 187
8 b, ]) t% b0 m2 G: ]4 p% n6 m& m8 F, k0 P* f/ H" u
10.5 小结 188
% g6 n. e- u: Q+ m! |% K
" Y- C1 U8 S% {, O: T; z' }第11 章 Bitbucket 上的私有团队工作 189( [, i# A/ L) J8 W* c
) f! _9 b, Y2 ^5 G9 O F
11.1 非公开项目的项目治理 189
' }' g; E/ ~0 l- o& {0 ^
0 } ~ h- @. X4 ?$ U8 o11.2 开始使用 190$ ]6 S& t! v/ M6 T2 T" z0 q
% t5 ^6 d3 A% |" w1 y- i
11.2.1 创建账户 1903 Z# Y. B( @3 P ]. ~: H
6 [" g* }( R* l5 t3 }11.2.2 在欢迎页面创建私有项目 192
$ r7 x# u2 T" k+ d! N' w5 V Y5 v+ z7 v4 y+ \
11.2.3 从信息中心创建私有项目 1938 h# i2 |3 c4 D% }. r
# Z4 D, H5 R# l1 d9 A. n5 T& t0 E' d
11.2.4 设置你的新仓库 194% j) l: a* h- ~* d4 `: s/ l9 m! L
2 x. m/ H+ S0 H6 R8 @( k+ W11.2.5 探索你的项目 196
8 d) [0 [8 k6 J k
3 n, W5 Q2 N; q, u11.2.6 编辑仓库中的文件 197
# v }8 o- H t( t6 k' L' |$ y
i* d& W' V0 a: h11.3 项目设置 199
/ G; F3 v5 [1 D3 c0 C8 V# o7 ?) Y5 M9 ?8 Z
11.3.1 Wiki 页面中的项目文档 200
4 ~1 W G% s' y# H E& O
1 E- y0 y* q* x11.3.2 使用issue 跟踪你的更改 2022 |1 ~5 r8 m) i# H/ I U A0 f& H
, g& [( n! Y; r! {
11.4 访问控制 2058 [2 q/ N5 u6 b: d- M
/ o$ q2 X9 u4 F
11.4.1 共享权限 2075 i/ m( r$ X$ z g% O
p' j5 `- @4 U) W' _
11.4.2 每个开发者分别派生项目 207
6 w( ]6 ]5 J& z% }
9 B/ ~% G/ J# \# g5 l$ F3 f11.4.3 通过保护分支限制访问 2071 p+ Y2 i, a. X$ t4 W
, C ~# L3 Z- k& q# g' K3 ]6 o3 u2 J
11.5 拉取请求 209) |: a3 V, D3 K1 v4 _3 i
: q* L7 v: s b
11.5.1 提交拉取请求 209
. P& U$ v- C. V0 p# k: x( n& w h8 X% x1 R: k) i( v
11.5.2 接受拉取请求 210
0 V- i* d% I# t/ ?# `& ~/ f. B" i1 D& a) i8 d: G
11.6 使用Atlassian Connect 扩展Bitbucket 210
/ ~8 ~; A F4 n$ }" b8 _
$ I2 \: v5 L4 Q4 e4 J3 r2 I5 L11.7 小结 212( q+ K4 c+ w% y& z
* j1 Z6 _' u# ?# o2 T4 m N0 T
第12 章 GitLab 上自行管理的协作 213
( U& ]" x. p2 \8 F7 _+ C% Z9 E1 F( q/ I% r
12.1 入门 213
- U A3 ~# u3 [% I' s/ ^8 Y* P
% w* J L S- v( h- r8 { Y' x1 E. d12.1.1 安装GitLab 213
9 `! ]" h( n; \: S$ T* w: s. C3 A o2 }6 p6 N8 m, i, [8 ^
12.1.2 设置管理账户 215
4 S8 f2 z. Y. X1 \) }5 C- t9 p) w* F
12.1.3 管理信息中心 216
r3 `# S, L! G0 X+ I
' l+ Y. _9 C. M# ?" b3 M12.2 项目 219
0 d( t0 M8 X: Q( J" a4 s1 C- g* d4 R0 u7 K
12.3 用户账户 2215 w$ W0 C* X. t) M" u% G0 z
7 m8 L; N8 d2 F* i12.3.1 创建用户账户 221
9 U- Q$ `0 }& ?4 z8 J9 \& ?2 R @9 Y6 m l- q' `0 O2 P2 G1 ?
12.3.2 添加项目成员 223) D( z/ g. C( n. x- X; I
$ N! k% |$ @# F( c1 I: J) e12.4 群组 224/ W. p. p/ ]# D) E
9 m7 r: m! s; D" ?9 _" y2 E
12.4.1 添加群组成员 225
9 r; w2 g7 M( U( Y) t. W0 @
+ d0 U6 \6 c( V5 C: h12.4.2 将项目添加到群组 227
$ |# ]4 }' }- Y2 F9 d; H
. k! e3 _# z9 w0 Z! P0 b s12.5 访问控制 228
0 R m% Z2 @/ R0 J- f. t3 F: |3 S* q3 ~
12.5.1 项目可见性 2285 S- g" ~+ `5 y7 [8 ~
" P/ c! g. F: X, t. C# D$ j
12.5.2 使用项目角色限制活动 229; U8 Z6 V# R+ x, f0 ~
9 `. t9 q+ L5 q12.5.3 使用保护分支限制访问 2301 h% ?' D- Y1 Y9 X9 C8 e6 t9 g
) G$ A$ m, k; X8 E# x6 f12.6 里程碑 231* M! `0 l9 K1 _; T. r
( k" J H% B2 p" F" j- c9 d12.7 小结 232
+ i+ I0 p6 D% b! p- t" F! o0 M+ y% ]/ E ?4 _) q6 [ r
附录A 奶油塔 233+ A$ X {: G9 e
7 s) { E S) I( K* ^+ @' Y附录B 安装版本的Git 235
, Q+ k; l, p+ m! p; d7 Z
+ O- m& e( D( D附录C 配置Git 240* B: K. A" _3 s+ U! [; G" V* C4 W
. n6 |7 _; \! I! C附录D SSH 密钥 245
) b$ J. j3 w5 G) a5 O- N, G) W) j
+ U k$ k+ x! _( Z关于作者 248$ p7 u0 P% v3 B$ ]) {; Y
4 ~, Q7 `) p" a: E/ A( C关于封面 248
]* Q" g( \# R3 t+ ^
' u: [0 Q+ ^0 G6 z# N百度云盘下载地址(完全免费-绝无套路):
$ X$ R; J' M+ K4 [ |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|