gpt4 book ai didi

git - Mercurial/Git : Different directories for different branches in same repository

转载 作者:太空狗 更新时间:2023-10-29 14:05:31 27 4
gpt4 key购买 nike

我是 git 和 mercurial 的新手,正在尝试使用这些工具。我在工作中使用 perforce 作为源代码控制,所以最终比较了它的功能。

现在,我有一个如下所示的存储库:

Repo_1:
DummyProject:
Master/Default - branch
Release - branch
AnotherBranch - branch

对于Git/Mercurial,我使用的是Atlassian的SourceTree GUI客户端进行操作。我已经在本地克隆了这个完整的存储库,并且可以在 GUI 客户端中看到分支。要在分支机构之间切换,我可以使用此工具 checkout 。

假设我在 Master/Default 分支中工作并对一些文件进行了一些更改。当我仍在这个分支上工作时,出现了一些关键问题,我需要在 Release 分支中进行更改。此时,如果我从 Master/Default 分支切换到 release 分支,SourceTree 基本上会使用 release 分支的内容更新工作目录.它警告我有一些未保存的更改,我应该在切换到 release 分支之前提交或搁置/存储这些更改。

在 perforce 中,我通常会有 3 个带有分支名称的文件夹,我可以从 release 分支获取最新的并在 release 分支上进行更改而不用担心 < em>master/default 分支被覆盖,因为两个分支位于不同的目录中。完成后,我可以在 release 分支中提交更改并在 master/default 分支中继续工作。

我可以在 git/mercurial 中做些什么吗?

我能想到的最接近的选择是再次克隆存储库(可能从本地而不是远程来节省网络开销)然后在发布分支上工作并将更改推送回本地和远程存储库.

我认为这可能会浪费本地空间,因为存储库为此目的必须再次克隆所有历史记录和元数据。

最佳答案

Git 有 https://git-scm.com/docs/git-worktree这允许您为 repo 创建多个本地工作树。

我使用从远程克隆存储库两次的方法,在本地保留两个或多个副本。对我来说,这非常有效。我在一个商业软件环境中工作,在这个环境中,我们总是有待发布的版本支持、当前版本的发布标题、提前工作的分支等。任何时候至少有三个活跃的团队共享分支,并且有很多成对或三人之间的共享功能分支上的开发人员。

在某些情况下,另一个有用的工具是 git stash。这对我来说是一个常规的 goto,因为由于工具我必须在本地进行修改,但永远无法提交。但它对于中断任务和切换分支也很有用。

本地存储,是的,从数量上讲这是一种浪费,但是,我不在乎。我关心的是 pull 和推送的传输时间,以及摆弄源代码控制所花费的时间。

这里的其他人可以提供更多关于 Git 的知识。我对 Mercurial 了解为零。

关于git - Mercurial/Git : Different directories for different branches in same repository,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34114278/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com