【问题标题】:git add . vs git commit -a混帐添加。 vs git commit -a
【发布时间】:2011-04-02 06:46:48
【问题描述】:

两者有什么区别:

  • git add .
  • git commit -a

我应该两者都做,还是那是多余的?

【问题讨论】:

标签: version-control git-commit git-add git


【解决方案1】:

通过使用 git commit -a 开关和 commit 命令自动“添加”所有已知文件(即所有已在索引中列出的文件)的更改

【讨论】:

    【解决方案2】:

    git commit -a 在它知道的所有文件上自动调用git add。您可以使用git add 选择要提交的文件。有关更多信息,请参阅文档:here

    【讨论】:

    • 它所知道的所有文件对我来说非常不清楚,特别是因为那些据说没有添加
    • @alternative,如果您为“它知道的所有文件”添加说明,这个答案仍然可以做得更好.....
    • @Pacerier 相当于git add -u
    • @Z.Khullah,所以“所有(...)”的意思是“跟踪的文件”?
    • @TheFrost 正好!
    【解决方案3】:

    git commit -agit add -u && git commit 的意思几乎[*] 相同。

    它与git add . 不同,因为这会添加未被忽略的未跟踪文件,git add -u 仅将更改(包括删除)暂存到已跟踪文件。

    [*] 如果您不在存储库的根目录中,则存在细微差别。 git add -u 阶段更新当前目录及以下目录中的文件,相当于git add -u .git commit -a 阶段并提交对所有跟踪文件的更改。

    【讨论】:

    • 为了保持一致性,[*] 中的行为将在 git 2.0 中发生变化。
    • 在哪个方向?也就是说,commit -a 会变成 add -u,还是 add -u 会变成 commit -a?
    • @MilesRout: git add -u 会变成git commit -a;如果这就是你的意思,你需要明确地说git add -u .
    • 这与 Git v 2.0 完全一样,其中git add . behaves in a different way.
    猜你喜欢
    • 2011-02-15
    • 2014-01-17
    • 2011-12-07
    • 2017-12-30
    • 1970-01-01
    • 2011-08-31
    • 2011-07-07
    • 2019-03-18
    • 2011-12-01
    相关资源
    最近更新 更多