## 教程 - 與別的倉庫分享改變
在 [第一次改變](/wiki/ChineseTutorialFirstChange)的教程中,我們在`my-hello-new-output` [倉庫](/wiki/Repository)中創建了一個[變更集](/wiki/ChangeSet)。現在我們希望在其它地方擴展那個變化。
遵循 [Mercurial](/wiki/Mercurial) 好的風格,我們首先[克隆](/wiki/Clone)我們原始的[倉庫](/wiki/Repository).
```
$ cd ..
$ hg clone my-hello my-hello-share
```
我們可以使用 `tip` 命令來找出每一個[倉庫](/wiki/Repository)的[Tip](/wiki/Tip)。(記住, [Tip](/wiki/Tip) 是最后一個[變更集](/wiki/ChangeSet)。) 我們在這用了一個 `-q` ("保持安靜") 參數來讓 [Mercurial](/wiki/Mercurial) 不要輸出 [Tip](/wiki/Tip) 的完整描述。
```
$ cd my-hello-share
$ hg -q tip
1:82e55d328c8c
$ cd ../my-hello-new-output
$ hg -q tip
2:a58809af174d
```
我們可以看到, [Tip](/wiki/Tip) 在各個倉庫中是不同的。讓我們回到 `my-hello-share` 并在那里擴展我們的新[變更集](/wiki/ChangeSet)。要達到這個目的,我們用 `pull` 命令,這個命令所有在別的倉庫中有而在本倉庫中沒有的 [變更集](/wiki/ChangeSet) 從別的倉庫 [拉](/wiki/Pull) 到本倉庫。
```
$ cd ../my-hello-share
$ hg pull ../my-hello-new-output
pulling from ../my-hello-new-output
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
(run 'hg update' to get a working copy)
```
不像其它普通的 [Mercurial](/wiki/ChineseMercurial) 命令,`pull` 有點羅嗦。在這點上 [Pull](/wiki/Pull) 是成功的。
最近一行輸出是重要的。在 [Pull](/wiki/Pull) 后,缺省情況下 [Mercurial](/wiki/ChineseMercurial) 不更新[工作目錄](/wiki/WorkingDirectory)。這意味著雖然 [倉庫](/wiki/Repository) 現在有[變更集](/wiki/ChangeSet), 但在[工作目錄](/wiki/WorkingDirectory)中的 `hello.c` 文件仍然是[Pull](/wiki/Pull) 之前老的內容。
我們可以用以下[Mercurial](/wiki/ChineseMercurial)的提醒來 [Update](/wiki/Update) 這個文件 (也包括所有其它 [Pull](/wiki/Pull) 時改變的文件)。
```
$ hg update
```
現在,我們可以檢查并看到 `my-hello-share` 和 `my-hello-new-output` 有同樣的內容和版本歷史記錄。
為確保與倉庫是相同的,我們可以進入`my-hello-share`路徑,然后做一個
```
$ hg pull ../my-hello-new-output
$ hg push ../my-hello-new-output
```
如果這兩個命令都返回'no changes found',那意味著兩個倉庫是一致的,反之亦然,用'my-hello-new-output'代替'my-hello-share'。
為了和別人分享改變,我們繼續[導出](/wiki/ChineseTutorialExport)。