Git - 将分支存储在单独的本地目录中

标签 git github version-control

我是 git 的新手,正在尝试以正确的方式设置我的存储库。

基本上我的应用程序是某种平台,因此该平台的实现基于 master 分支,但对这些文件以及一些附加文件进行了一些小的修改。

我尝试将它设置为分支,所以我有一个 master 分支,implementation_1implementation_2

但据我所知,这意味着本地所有分支都存储在一个目录中,它们之间的分离只能通过 git 实现。

我想要有 3 个本地目录,masterimp_1imp_2。如果我对 imp_1 目录中的核心文件之一进行了更改,我希望能够将该更改 merge 到 master 分支中,然后从那里 merge 到 imp_2.

我开始认为这些需要是 3 个不同的存储库(实现是核心的分支)。那是要走的路吗?在那种情况下,我将如何处理上述情况?

最佳答案

分支是 Git 中的一等公民。它们不像 SVN、CVS 等旧版 VCS 中那样“模拟”为分支。

如果你真的需要三个不同的目录,因为你想拥有三个不同的开发环境,那么制作 3 个克隆:

  • 一个在名为 master 的目录中
  • 一个在名为 imp_1 的目录中
  • 一个在名为 imp_2 的目录中

但要真正理解分支,您可以阅读“Pros and cons of different branching models in DVCS”。


或者,自从 Git 2.5(2015 年 7 月,OP 问题 4 年后),正如我在 Multiple working directories with Git? 中详述的那样, 使用 git worktree

那将是一个克隆,多个文件夹(每个分支一个)。
使用 Git 2.7+,您可以列出这些文件夹:

$ git worktree list
/path/to/bare-source            (bare)
/path/to/linked-worktree        abcd1234 [master]
/path/to/other-linked-worktree  1234abc  (detached HEAD)

关于Git - 将分支存储在单独的本地目录中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5101270/

相关文章:

linux - Gitolite 和非裸仓库?

git - 如何编辑 GitHub 发布日期?

eclipse - 当我提交一个项目时,会创建一个额外的项目目录

version-control - 运行自己的版本控制服务器的优点/缺点

git - 删除特定提交但之后保留所有提交

java - 你如何让 Git 与 IntelliJ 一起工作?

Git忽略目录中除子文件夹之外的所有内容

Git:如何忽略子目录中的匹配目录?

git - SourceTree - rebase - merge 期间的错误

Git:哪些命令使本地存储库与远程存储库相同?