如果我之前添加git,那么git commit -am是多余的吗?

Lee*_*lly 38 git

运行git add .然后是多余的git commit -am "commit message"吗?

我可以跑git add .,然后git commit -m "commit message",或者,只是git commit -am "commit message"

Tum*_*oid 46

Git add+ git commit -m将只提交您添加的文件(新增和以前跟踪过),但git commit -am会对跟踪文件提交所有更改,但不会添加新文件.

  • 如上所述,`git commit -am`不会添加未跟踪文件,但我想我会指出`git add -u`只会添加(*u*pdate)当前_tracked_项目...... (3认同)

Kar*_*rky 28

使用Git 2.0之前的版本,git commit -am如果删除任何跟踪文件,则运行并不多余.请参阅以下选项的进一步说明.

只要您在根目录中,并且想要添加所有新文件,修改和删除,您需要3).

1)提交新文件和修改以前跟踪的文件,但不添加删除.

随着Git <2.0:

$ git add .
$ git commit -m
Run Code Online (Sandbox Code Playgroud)

使用Git> = 2.0:

$ git add --ignore-removal .
$ git commit -m
Run Code Online (Sandbox Code Playgroud)

2)提交对跟踪文件的修改和删除,但不添加新文件.

$ git commit -am
Run Code Online (Sandbox Code Playgroud)

3)提交新文件和所有已更改的跟踪文件(修改和删除).或者:

随着Git <2.0:

$ git add .
$ git commit -am
Run Code Online (Sandbox Code Playgroud)

...要么:

$ git add -A
$ git commit -m
Run Code Online (Sandbox Code Playgroud)

使用Git> = 2.0:

$ git add .
$ git commit -m
Run Code Online (Sandbox Code Playgroud)


xZi*_*ise 9

实际上,git commit -a并不总是多余的,因为它也删除文件!例如,您有两个文件:一个文件被跟踪,另一个文件没有被跟踪.现在您要删除已跟踪的(无处不在)并添加未跟踪的.

因此,您删除跟踪的文件.如果您只使用git add .然后git commit它将跟踪新的但不会删除存储库中的旧文件.

所以你要么执行,git rm …要么使用git commit -a.