2013-08-07 62 views
2

我想签出整个分支,但只能在该分支的特定目录内工作。因此,我想对整棵树进行“潜入”,并使我的工作树仅反映我选择的子目录。例如: -git:使工作树仅反映整棵树的子路径

"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/' 

这可能吗?

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

回答

0

这是不可能的。但是,您可以使用cd dir1和git仍然会从那里工作,让您在使用的git add file1代替git add dir1/file1

+0

我很欣赏你的建议,但我真的需要在我工作的根目录下有子路径内容。我接受git无法做到这一点,并尝试以其他方式解决它。谢谢。 – user2660464