|
当我在 Git 文件变更时,如何只提交部分变更?1 ?& x: |' L. _# u0 z
例如,我怎样才能只提交文件中已更改的 30 行 15 行?
8 C) Q2 B$ c/ |- y( d
! r2 F- ?3 V. |% J 解决方案: , ?4 E1 a& u$ d2 D; g& u. N) X. `
您可以使用git add --patch (或-p简称),git 将您的文件分解为合理的大块(文件的一部分)。然后它会提醒你这个问题:+ v* I* \, y" X9 K! m
Stage this hunk [y,n,q,a,d,/,j,J,g,s,e,?]?以下是每个选项的说明:
0 J- c0 O m) R* by 下次提交这个大块暂存, @8 n+ x7 @1 v# c& ?$ D
n 不要为下一次提交暂存这个大块
( ` {8 a8 c3 c; k, u! D( cq退出; 不要上演这个帅哥或任何其他帅哥
8 h( `4 ~3 u3 sa 这个大块和所有后来的大块暂存在文件中
0 c5 f; h* O0 S' Z9 M! Ed 不要将这个大块或任何后来的大块暂存在文件中
7 R) v+ @! c6 `0 V+ I* g0 hg 选个大块头
, L% |2 I: `7 k0 E/ 搜索匹配给定正则表达式的块( B3 l. Q$ S: N% I$ K
j 留下这个未确定的大块,看下一个未定的大块9 A, I6 ^) T7 o" o# ?* H8 C' M
J 留下这个大块,看下一个大块
' A' @+ i! n: y: F7 N4 `k 让这个大块未定,请参考以前未定的大块( K) V) M6 \, `# C* @
K 留下这个大块还没看以前的大块
# E2 p4 v, u5 ns 将当前的大块分成更小的块8 {4 v! I4 ]/ O
e
3 y/ ]: y( g- ^8 E" q* A& T目前大块手动编辑
_: {2 [5 e: {然后,你可以通过 //-替换为手动编辑大块#. {7 r) x, h, |: s5 h) T
? 打印大帮助
( ^* n% I' {, U2 W$ S3 n如果该文件尚未在存储库中,您可以先执行git add -N . 之后可以继续git add -p 。& T8 o) d$ \( ^: E& ~
以后可以用:. G+ }2 o3 h" S; Q$ ]% h, b. a$ V
git diff --staged 检查您是否做出了正确的改变
, E* M8 ?9 c) @# X& f& Ugit reset -p 取消舞台错误添加的帅哥' F( d# y3 n: R: [6 l! Y
git commit -v 编辑提交信息时检查您的提交。请注意,这与git format-patch命令大不相同。命令的目的是分析提交的数据.patch文件。 |
|