了解何时使用git commit -m和git commit -am

时间:2014-02-18 20:05:36

标签: git

我的主要问题是,总是git commit -am代替git add是否有意义。然后是git commit -m

我知道-am表示它将添加修改后的TRACKED文件的所有更改。所以在我没有添加任何新文件的情况下,只运行git commit -am而不是git add是有意义的,但是它被认为是最好的做法:

git add

git commit -am "message"

呢?

甚至改为:

git add -A

git commit -am "message"

3 个答案:

答案 0 :(得分:6)

  

最佳做法是:

     

git add。

     

git commit -am“message”

     

呢?

不,没有这样的“最佳实践”。只要您不想包含任何未跟踪的文件,git add + git commit -mgit commit -am将完全相同。

有两种情况需要使用git add

  • 如果您想要包含未跟踪的文件,
  • 如果您不想提交所有更改的内容

第二点特别是许多人建议不要总是使用commit -a的原因: 在处理代码一段时间之后,您的工作副本中经常会有几种不同类型的更改(您正在处理的错误修复,一些不相关的重命名,一些临时更改用于调试......)。 commit -a有可能在一次提交中投入太多 - 在这些情况下,选择性使用git add会更好。

但如果您确定要提交更改的所有内容,请继续使用git commit -a

答案 1 :(得分:3)

我通过-am意外地提交了足够的代码,这些天我通常会避免使用它。 git add -u将与git commit -a进行相同的更改,然后您可以执行git diff --cached以确保您要提交它们。我的一些同事甚至总是git add -p,所以他们必须在甚至上演之前看看每一个差异。

如果我知道我所做的更改很小,那么我仍会使用git commit -am以方便使用,但可能值得摆脱这是默认习惯。

答案 2 :(得分:3)

如果你保持.gitignore当前状态,那么git commit -am是完全适合做事的方式。它是git add -uA <nopattern> ; git commit -m "message"的快捷方式。

这是git,最佳实践是主观的。我更喜欢手动添加文件,这样我就有机会随时查看更改,但您可能不需要。