git:使工作树仅反映整个树的子路径

时间:2013-08-07 11:39:58

标签: git

我想检查整个分支,但只能在该分支的特定目录中工作。因此,我想在整个树中“潜入”并使我的工作树只反映我选择的子目录。 E.g:

"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中的原始对象,并能够来回合并它们并保留所有历史记录。

1 个答案:

答案 0 :(得分:0)

这是不可能的。但是,您可以使用cd dir1,git仍然可以在那里使用,允许您使用git add file1代替git add dir1/file1等。