我从Mercurial开始。我正在阅读mercurial book,但仍有疑问。
我在几个月前开始了我的项目,我有很多文件和目录。现在,我想使用Mercurial并在bitbucket中创建自己的帐户。现在,我想在Bitbucket中设置这个项目。如何将所有这些文件添加到bitbucket repo?
这就是我以为我能做到的事情: 我可以尝试(1)克隆空仓库(来自bitbucket)(1)将所有文件复制到该目录中,(3)发出“hg add”并在此之后(4)提交。
也许你有更好的方法来做到这一点。
谢谢!
(1)
hg clone https://ME@bitbucket.org/ME/myproject
(2)
cp existing-project/* myproject/
cd myproject
(3)
hg add
(4)
hg commit -u ME
(5)
hg push (i think i have to do this to make the changes visible)
答案 0 :(得分:8)
您可以在原始项目文件夹中简单地hg init
,hg add
和hg commit
,然后修改~/project/.hg/hgrc
以添加您的bitbucket repo的默认推送位置(您可以将它克隆到临时文件夹以获取为您创建的hgrc,您可以将其复制到项目中,甚至无需使用RTFM获取正确的语法。)
由于mercurial的分布式特性,这个hgrc条目是唯一将你的本地回购与bitbucket联系起来的东西;您甚至可以hg push https://ME@bitbucket.org/ME/myproject
,而无需在任何地方显示链接。存储库的每个副本都是完全自给自足的。
答案 1 :(得分:3)
Wooble的答案还可以,但它遗漏了一些东西,所以我在这里补充。
当您第一次创建空存储库(通过hg init
或在bitbucket上创建)时,它没有标识。但是,只要它有任何变更集,它就具有一个标识,您只能在它和共享该标识的存储库之间进行推/拉。
如果您有2个存储库A和B用于单独的项目,则无法在它们之间进行推/拉。在bitbucket上创建新存储库后,您可以将更改集从A或B推送到该回购一次。如果您第一次从B推送更改,则bitbucket存储库现在与B相关。您无法将更改集从A推送到其中,或者将更改集从中拉入。
所以当Wooble说,
...这个hgrc条目是唯一将你的本地回购与bitbucket联系起来的东西;
这是正确的,因为它仍然是空的,因为它与任何存储库无关,直到它具有更改集。并且你仍然需要该地址能够在本地仓库和bitbucket仓库之间推/拉,但是一旦你将变更集推送到它,它也具有与你的本地仓库相关的身份。