我是新手git & mercurial並嘗試使用這些工具。我在工作中使用perforce作爲源代碼控制,因此最終將功能與它進行比較。Mercurial/Git:不同分支在同一存儲庫中的不同目錄
現在,我有一個寶庫,它看起來像如下:
Repo_1:
DummyProject:
Master/Default - branch
Release - branch
AnotherBranch - branch
GIT中/水銀,我使用Atlassian的SourceTree GUI客戶端進行操作。我在本地克隆了這個完整的存儲庫,並可以在GUI客戶端看到分支。要在分支之間切換,我可以使用此工具結帳。
讓我們說我正在大師/默認分支,並對一些文件做了一些更改。雖然我仍然在這個分支上工作,但是出現了一些關鍵問題,我需要在版本分支中進行更改。此時,如果我切換到版本分支從分支主,默認分支,SourceTree基本上更新工作目錄與版本內容分支。 它給了我警告,我有一些未保存的更改,我應該提交或擱置/存儲這些更改,然後切換到版本分支。
Perforce中,我通常有3個文件夾與分支機構的名字,我可以賣到從釋放分支的最新和釋放分支進行修改,而不主/默認分支的擔心被改寫,因爲這兩個分支機構在不同的目錄中。一旦我完成,我可以提交發佈分支的更改並恢復在master /默認分支的更改。
在git/mercurial中我能做些什麼嗎?
我能想到的最接近的選擇就是再次克隆存儲庫(可能是從本地而不是遠程節省網絡開銷),然後在發佈分支上工作並將更改推回到本地和遠程庫。
我想這可能會浪費本地空間,因爲存儲庫將不得不克隆所有的歷史和元數據爲此目的。
什麼'汞share'(https://www.mercurial-scm.org/wiki/ShareExtension)? – aflp91
@ aflp91 - 是的,它在[另一個答案](http://stackoverflow.com/a/34064957/960558)鏈接主題中提到...我只是容易忘記未使用的替代品 –