回答

收藏

“git add -A”和“git add”之间的区别。

技术问答 技术问答 442 人阅读 | 0 人回复 | 2023-09-11

该命令git add [--all|-A]似乎和 一样git add .。这对吗?如果不是,它们有什么区别?' c9 Y$ D3 T2 J* U2 N- X
                                                                1 a6 c" ]$ ^, W" ]) g
    解决方案:                                                               
5 h" U. x; T! g3 K                                                                这个答案只适用于Git 版本 1.x。对于 Git 版本 2.x,请参考其他答案。
$ q- m8 W' @5 m( K8 ]" y概括:0 O9 O4 q3 S& I6 Y9 k% J
git add -A阶段所有更改' }. _/ \5 e1 v7 {1 j
git add .暂存新文件和修改,不删除(在当前目录及其子目录中)。
9 r. g; W% x- e0 K7 f; mgit add -u修改和删除阶段,没有新文件
细节:
) ?9 N8 ]& r) B0 T) j/ lgit add -A相当于 git add .; git add -u。5 f5 p0 @* [' i4 Q
重要的一点git add .是的,它检查工作树,并将所有这些路径添加到临时存储更改中。如果它们已经改变或新的,并且不被忽视,它将不会临时存储任何rm”操作。
' q- F7 R0 B1 M# Tgit add -u查看所有已跟踪文件并暂存更改(如果不同或已删除)。它不会添加任何新文件,只会暂存更改跟踪文件。$ P5 [- f9 |: w
git add -A 做这两个方便快捷。
1 u7 X- d1 Z' q, k你可以用这样的方法来测试差异(请注意 Git 版本 2.x,您的输出git add . git status 有所不同):
" A3 i% d$ U) O2 V/ ~8 h7 ?2 ]
    git initecho Change me > change-meecho Delete me > delete-megit add change-me delete-megit commit -m initialecho OK >> change-merm delete-meecho Add me > add-megit status# Changed but not updated:#   modified:   change-me#   deleted:    delete-me# Untracked files:#   add-megit add .git status# Changes to be committed:#   new file:   add-me#   modified:   change-me# Changed but not updated:#   deleted:    delete-megit resetgit add -ugit status# Changes to be committed:#   modified:   change-me#   deleted:    delete-me# Untracked files:#   add-megit resetgit add -Agit status# Changes to be committed:#   new file:   add-me#   modified:   change-me#   deleted:    delete-me
    ; i& X' i# i2 V4 ]% D/ |9 f" f
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则