2

我想签出整个分支,但只在该分支的特定目录内工作。因此,我想“深入”整个树,让我的工作树只反映我选择的子目录。例如:

"master" tree
  dir1/
    file1
    file2
  dir2/
    file3

work-dir tree
  .git
  file1
  file2

我的猜测是这样做:

git checkout master:dir1/

但是,这不起作用并报告错误:

fatal: Cannot switch branch to a non-commit 'master:dir1/'

这可能吗?

注意:我不想使用子模块,因为我不想将我的 repo 分成不相关的部分。据我所知,子树合并只能帮助我同步两个具有相似结构但历史不同的单独目录。我想修改 repo 中的原始对象,并能够来回合并它们并保留所有历史记录。

4

1 回答 1

0

这是不可能的。但是,您可以使用cd dir1并且 git 仍然可以从那里工作,允许您使用git add file1而不是git add dir1/file1etc。

于 2013-08-07T11:44:40.897 回答