2014-06-08 35 views
1

我是git的新手,并尝试将它与包含许多(几百个)源的项目一起使用。 我遇到的问题是,git在结帐时将所有项目的源代码提取到我的工作目录。这使得很多混乱,因为我不得不在文件之间跳转,并可能无意中更改/损坏的文件,我甚至不打算改变。我宁愿只提取我要修改的资源,然后使用它们。 那么,有没有办法告诉git我只会使用特定的源代码,所以只有这些源代码才会被提取到工作目录中? 请注意,这不是一个部分结帐或类似的东西。我可以结账整个分支。这更多的是组织一个工作文件夹。 谢谢。git - 有没有办法在工作目录中只获取所需的文件

+1

这个不清楚;你只想“提取”某些来源,但你不想要部分结账?这里有什么区别? –

+0

这意味着我想在提交中拥有整套源代码。 – spoonboy

+2

此外,一种解决方案是不修改任何不想修改的文件。即使你(意外地)做,只要使用'git status'来查看你已经完成了什么,然后使用'git checkout'来恢复意外的更改。 –

回答

2

如果你的相关人士都在一个特定的子文件夹,你可以做一个sparse checkout,为了只检出特定的子文件夹的内容(你会在.git/info/sparse-checkout文件中声明,因为我mention here)。

如果没有,那么你需要将它们移动到文件夹(重组),或者甚至它们隔离到自己的回购协议(并将其添加到主回购为submodule


另一种选择是使用支持基于任务的上下文过滤的IDE。
例如Eclipse Mylyn,我在“Eclipse - easy access to frequently used folders?”中提到。
Mylyn的是task-focused interface使用context

http://i.stack.imgur.com/A7Wnl.png

这也许不是你的堆栈的一部分,但它说明了如何让“有关更改仅几个文件的这个问题,我在我的工作做文件夹“可以解决。

+0

不幸的是,他们不是。看到我上面的评论。 – spoonboy

+0

@spoonboy我已经添加了一个替代方案,但不会有任何魔法解决方案。 Git作为一个整体来管理内容。 – VonC

+0

好的,谢谢,我认为答案是否定的,只是好奇,mercurial是否支持这种提取? – spoonboy

相关问题