git add 和git add A的區別

2021-08-14 22:36:15 字數 1745 閱讀 4095

git add -agit add .   git add -u在功能上看似很相近,但還是存在一點差別

git add . :他會監控工作區的狀態樹,使用它會把工作時的所有變化提交到暫存區,包括檔案內容修改(modified)以及新檔案(new),但不包括被刪除的檔案。

git add -u :他僅監控已經被add的檔案(即tracked file),他會將被修改的檔案提交到暫存區。add -u 不會提交新檔案(untracked file)。(git add --update的縮寫)

git add -a :是上面兩個功能的合集(git add --all的縮寫)

下面是具體操作例子,方便更好的理解(git version 1.x):

git init

echo change me > change-me

echo delete me > delete-me

git add change-me delete-me

git commit -m initial

echo ok >> change-me

rm delete-me

echo add me > add-me

git status

# changed but not updated:

# modified: change-me

# deleted: delete-me

# untracked files:

# add-me

git add .

git status

# changes to be committed:

# new

file: add-me

# modified: change-me

# changed but not updated:

# deleted: delete-me

git reset

git add -u

git status

# changes to be committed:

# modified: change-me

# deleted: delete-me

# untracked files:

# add-me

git reset

git add -a

git status

# changes to be committed:

# new

file: add-me

# modified: change-me

# deleted: delete-me

總結:

·git add -a  提交所有變化

·git add -u  提交被修改(modified)和被刪除(deleted)檔案,不包括新檔案(new)

·git add .  提交新檔案(new)和被修改(modified)檔案,不包括被刪除(deleted)檔案

git版本不同會有所區別:

git version 1.x

git version 2.x

**:

git add和被ignore的檔案

如果有如下的目錄結構 workspace tree hello.c d hello.o gitignore say.c say.o gitignore 在workspace tree的跟目錄下有3個檔案hello.c,hello.o,gitignore以及乙個資料夾d,其中根目錄下的.gitigno...

git add 和 git push 命令詳解

一 git add 命令 git add 該命令會監控工作區的狀態樹,使用它會把工作時的所有變化提交到暫存區,包括檔案內容修改 modified 以及新檔案 new 但不包括被刪除的檔案。git add u 該命令僅監控已經被add的檔案 即tracked file 他會將被修改或刪除的檔案提交 到...

git 撤銷已經git add的檔案

git add 操作時,有時會誤新增一些不想提交的檔案,如何解決?1 誤add單個檔案 git reset head 將file退回到unstage區 2 誤add多個檔案,只撤銷部分檔案 git reset head 將file退回到unstage區 git rm 與 git reset的區別 g...