在 Mac 上退出 Mercurial 中的分阶段更改

Backing out staged changes in Mercurial on a Mac

我刚刚克隆了一个通常由 Windows 用户维护的 hg 项目(我是 Mac)。我刚刚做了一个 hg add . 并收到了大量以下消息:

adding out/blah
adding out/meh
adding out/fizz
adding out/buzz
...etc.

我不想在 out/* 下提交和推送任何内容! 所以我在 .hgignore 中添加了以下条目:

out/*

然后再运行hg add .我是否成功阻止了生活在 out/* 下的所有这些垃圾被提交并推送到远程仓库? 如果没有,我还需要(具体)做什么,并且在什么顺序?

首先,检查

hg status

实际添加了哪些文件(您也可以使用 hg status -a 来限制自己添加的文件)。除非您删除它们,否则 out 中的文件仍会保持添加状态。为了摆脱它们,使用:

hg forget out

然后再次使用 hg statushg status -a 来验证它们不再是计划提交的一部分。

我还要注意 out/* 也会排除子目录中名为 out 的所有文件,例如foo/out/bar.txt。要仅忽略根目录 out 中的文件,请使用以下行代替您的 .hgignore:

re:^out/

re: 前缀将使用正则表达式匹配,而 ^out/ 将匹配所有以 out/.

开头的路径