0

请帮助我,因为 Mercurial 使简单的事情变得不可能。我只想提交我的更改。

$ hg com -m 'cleanup'
nothing changed (1 missing files, see 'hg status')

$ hg push
pushing to https://niklasr@bitbucket.org/niklasr/montao
http authorization required
realm: Bitbucket.org HTTP
user: niklasr
password: 
searching for changes
abort: push creates new remote head 84d1c2d2b638!
(did you forget to merge? use push -f to force)

$ hg merge
abort: outstanding uncommitted changes
(use 'hg status' to list changes)
dev@dev-OptiPlex-745:~/proj/montao/montaoproject$ 

如果我执行 hg status 我会得到太多文件并带有问号。我想我是这个项目的唯一开发人员,但可能有其他人的一些小更新,但这可能只是在一台计算机上完成的,所以它不应该成为冲突。但是我们知道版本控制系统在为我们制造冲突方面有多好,而这些冲突一开始并没有发生重大冲突。

4

1 回答 1

3

这一切都在善变的书中得到了更好的解释,但我会咬一口。

当您hg push反复警告您hg push将创建一个新头时-如果您在没有先合并的情况下推送,则会在远程端分割历史。

当您尝试合并时,hg merge它会警告您,如果您尝试合并,您将在您的工作目录中执行此操作,该目录具有未提交的更改。

当您提交时,它告诉您您已在本地删除了一个文件但未提交该文件 ( 1 missing files)。当你运行hg status它时,它会向你展示你所有的许多、许多未添加的文件?。您可以通过以下方式仅查看已删除的内容:

hg status --deleted

您希望该文件消失,您可以执行以下操作:

hg forget thatfilename
hg commit -m 'commiting a file I removed awhile ago'

如果你想把它拿回来

hg revert thatfilename

现在您的工作目录是干净的,您可以:

hg merge
hg push
于 2013-05-27T18:28:38.377 回答