【发布时间】:2015-12-06 05:05:37
【问题描述】:
我是 git 和 mercurial 的新手,并且正在尝试使用这些工具。我在工作中使用 perforce 作为源代码控制,因此最终将其功能与它进行比较。
现在,我有一个如下所示的存储库:
Repo_1:
DummyProject:
Master/Default - branch
Release - branch
AnotherBranch - branch
对于 Git/Mercurial,我使用 Atlassian 的 SourceTree GUI 客户端进行操作。我已经在本地克隆了这个完整的存储库,并且可以在 GUI 客户端中看到分支。要在分支之间切换,我可以使用此工具结帐。
假设我在 Master/Default 分支中工作,并对某些文件进行了一些更改。虽然我仍在处理这个分支,但出现了一些关键问题,我需要在 Release 分支中进行更改。此时,如果我从Master/Default 分支切换到release 分支,SourceTree 基本上会用release 分支的内容更新工作目录. 它警告我有一些未保存的更改,我应该在切换到 release 分支之前提交或搁置/存储这些更改。
在 perforce 中,我通常会有 3 个带有分支名称的文件夹,我可以从 release 分支获取最新的并在 release 分支上进行更改,而不必担心 master/default 分支被覆盖,因为两个分支位于不同的目录中。完成后,我可以在 release 分支中提交更改并在 master/default 分支中继续工作。
我可以在 git/mercurial 中做些什么吗?
我能想到的最接近的选择是再次克隆存储库(可能从本地而不是远程克隆以节省网络开销),然后在发布分支上工作并将更改推送回本地和远程存储库.
我认为这可能会浪费本地空间,因为存储库必须为此再次克隆所有历史记录和元数据。
【问题讨论】:
标签: git mercurial perforce sourcetree