为什么你关心 BitBucket 服务器上工作目录中的内容?只要您推送,更改就会在存储库中并在 BitBucket 页面上可见。
EDIT:好的,我将对其进行编辑以使其成为有用的答案。
假设您克隆了我的一个存储库,例如 BitBucket 上的 django-hoptoad。您将有一个名为的文件夹django-hoptoad
在您的本地计算机上,其内容将如下所示:
django-hoptoad/
|
+-- .hg/
|
+-- ... my code and other folders
有关存储库本身的所有数据都存储在.hg/
文件夹。这是 Mercurial 保存有关哪些文件在哪些变更集中进行了更改的数据以及许多其他内容的地方。
你可以这样想(尽管它过于简单化了):
django-hoptoad/
|
+-- .hg/
| |
| +-- data about changeset 1
| +-- data about changeset 2
|
+-- ... my code and other folders as they appear in changeset 2
当你跑步时hg pull
并且不更新,您将任何新的变更集拉入存储库:
django-hoptoad/
|
+-- .hg/
| |
| +-- data about changeset 1
| +-- data about changeset 2
| +-- data about changeset 3 (NEW)
| +-- data about changeset 4 (NEW)
|
+-- ... my code and other folders as they appear in changeset 2
如果不更新的话... my code and other folders
仍将等同于中的任何内容changeset 2
,但其他变更集仍在存储库中。
当你跑步时hg update
Mercurial 将更新... my code and other folders
最新变更集的内容。
django-hoptoad/
|
+-- .hg/
| |
| +-- data about changeset 1
| +-- data about changeset 2
| +-- data about changeset 3
| +-- data about changeset 4
|
+-- ... my code and other folders as they appear in changeset 4
真的,这意味着发生的事情... my code and other folders
不必与存储库中的内容匹配。您可以删除它,所有变更集仍然在存储库中:
django-hoptoad/
|
+-- .hg/
|
+-- data about changeset 1
+-- data about changeset 2
+-- data about changeset 3
+-- data about changeset 4
如果您现在提交,它将创建一个新的变更集,基本上表示“没有文件”。但你不必承诺。人们仍然可以向您推送和拉取,因为存储库仍然拥有有关变更集的所有数据。
几乎可以肯定,这就是 BitBucket 正在做的事情。您永远不会登录 BitBucket 的服务器、编辑代码并在那里提交——您只能进行推/拉/克隆。这意味着... my code and other folders
永远不会被实际使用,所以我想 Jesper 将其设置为删除它以节省磁盘空间。
Since hg update
仅真正影响工作目录,并且 BitBucket 上的工作目录从未使用过,您不需要运行hg update
当你推送到 BitBucket 后。