在 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 status
或 hg status -a
来验证它们不再是计划提交的一部分。
我还要注意 out/*
也会排除子目录中名为 out
的所有文件,例如foo/out/bar.txt
。要仅忽略根目录 out
中的文件,请使用以下行代替您的 .hgignore
:
re:^out/
re:
前缀将使用正则表达式匹配,而 ^out/
将匹配所有以 out/
.
开头的路径
我刚刚克隆了一个通常由 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 status
或 hg status -a
来验证它们不再是计划提交的一部分。
我还要注意 out/*
也会排除子目录中名为 out
的所有文件,例如foo/out/bar.txt
。要仅忽略根目录 out
中的文件,请使用以下行代替您的 .hgignore
:
re:^out/
re:
前缀将使用正则表达式匹配,而 ^out/
将匹配所有以 out/
.