请帮助我,因为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状态,我会收到太多文件和问号。我认为我是这个项目的唯一开发者,但可能会有一些来自其他人的小更新,但这可能只是从一台计算机完成,所以它不应该成为一个冲突。但我们知道有多好的版本控制系统可以为我们创造冲突,而这些冲突从一开始就没有重大冲突。
答案 0 :(得分:3)
这在mercurial book中解释得更好,但我会咬人。
当hg push
mercurial警告您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