2015-11-05 106 views
5

有沒有辦法在git中共享版本庫的歷史,而不必再次克隆整個文件夾?東西相當於Mercurial的git相當於'hg share'?

hg share project project-branch 

https://www.mercurial-scm.org/wiki/ShareExtension

+0

嗯,我根本不知道mercurial。我想我理解那個網站說你想要多個有一個歷史的工作樹。是[這](http://stackoverflow.com/questions/6270193/multiple-working-directories-with-git)你在找什麼?這似乎是最接近你可以用git – houtanb

+0

你可以請詳細說明那些對Mercurial不熟悉的gitsters的「共享」部分嗎?我會猜測。如果你想製作另一個本地倉庫,並從你現有的倉庫中取得一些歷史記錄,那麼使用Git就可以從* local * repos獲取歷史記錄 - 只需使用'/ path/to/local/repo'或' file:/// path/to/local/repo'作爲你的URL。此外,如果使用第一種形式,Git將使用硬連接(如果可用)來節省空間。 – kostix

回答

5

如果我理解爲hg share的文件,Git的相當於最接近的是git worktree,在2.5版本的新功能:

管理多個工作樹連接到同一個存儲庫。

一個git倉庫可以支持多個工作樹,允許你一次簽出多個分支。通過git worktree add,一個新的工作樹與存儲庫相關聯。這個新的工作樹稱爲「鏈接工作樹」,而不是由「git init」或「git clone」準備的「主工作樹」。存儲庫具有一個主工作樹(如果它不是裸存儲庫)以及零個或多個鏈接的工作樹。

我相信它仍處於測試階段,並且明確警告不要將它與子模塊配合使用。

從存儲庫運行git worktree add ../some/path/ branch將創建一個新的工作副本,其中branch檢出在../some/path/

可以找到這個新命令的更長的概述on GitHub's blog

+0

是的,就是這樣!我不知道他們已經添加了這個功能:)謝謝。 – endavid