【问题标题】:Git equivalent of Mercurial "hg commit -A -m <message>"Git 相当于 Mercurial “hg commit -A -m <message>”
【发布时间】:2019-12-29 18:38:53
【问题描述】:

最近我听说 BitBucket 将终止对 Mercurial 的支持,因此我正在切换到 Git。它只是一个人的存储库,我基本上用它来备份我的项目并作为旧代码的资源(我根本不做任何棘手的事情)。所以这些年来,每当我进行大量更改时,我只需使用hg commit -A -m &lt;message&gt; 来提交整个项目。

现在我已经切换到 Git,我想知道是否有人可以告诉我完成相同操作的等效命令?我知道有git commit -a -m &lt;message&gt;,但这给了我一个奇怪的信息“没有添加到提交但存在未跟踪的文件”,这让我有点不确定。

所以我想在这里问一下,什么命令/命令可以完成与 Mercurial 命令hg commit -A -m &lt;message&gt; 相同的功能?

【问题讨论】:

  • 请注意,hg commit 的 -A 选项意味着 Mercurial 应该在运行 hg commit 之前运行 hg addremove。 Git 没有任何等效的标志; git commit -a 告诉 Git 在提交之前运行 git add -u,-u 与 hg addremove 不同。从 Git 2.0 开始,您可以运行 git add -A; git commit,和/或您可以创建一个别名来执行此操作。 -A 选项到git add 大致相当于hg addremove(尽管存在重要的技术差异)。

标签: git macos mercurial


【解决方案1】:

您看到的警告消息(“没有添加到提交,但存在未跟踪的文件”)表明您的文件未跟踪。

您必须提醒 git 跟踪对这些文件的更改;使用git add &lt;filename&gt; 完成。
要跟踪所有文件,请使用git add * 通配符文件说明符。

从此时起,可以使用您指定的命令 (git commit -a -m &lt;message&gt;) 暂存和提交后续更改。

【讨论】:

  • 谢谢。我想每次添加文件时我都需要这样做?或者这会自动跟踪创建的任何新文件并消除任何被删除的文件?
  • 你也可以只写git commit -am "some msg",它更短一些。
  • 这将跟踪执行时未跟踪的所有文件。新文件需要在创建后标记为已跟踪。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-18
  • 2011-12-07
  • 1970-01-01
  • 2018-03-22
  • 1970-01-01
  • 2012-04-17
相关资源
最近更新 更多