我有一个复杂的存储库,有时代码段之间的逻辑边界跨越目录边界。有时目录 X 中的单个文件确实需要与目录 Y 中的文件一起使用。
例如,假设我有一个如下所示的中央存储库:
a/foo
a/bar
b/baz1
b/baz2
...我希望我的本地存储库最终以a/*
and b/baz1
, 但不是b/baz2
。其他文件应该最终位于另一个存储库中。
(是的,长期解决方案是移动文件,但是当我正在进行重构时,我需要对文件进行适当的版本控制。)
我可以使用 git 来做到这一点吗?
你可以使用 Git 来做到这一点结账稀疏 http://www.kernel.org/pub/software/scm/git/docs/git-read-tree.html#_sparse_checkout功能(如果该链接仍然不起作用,请尝试this one http://man.he.net/man1/git-read-tree or see man git-read-tree
)。在克隆的存储库中运行以下命令:
git config core.sparsecheckout true
echo '*' >.git/info/sparse-checkout
echo '!b/baz2' >>.git/info/sparse-checkout
git read-tree --reset -u HEAD
这将删除现有的b/baz2
来自本地工作目录的文件。它仍然在存储库中,但您的本地 Git 不会关心它已从工作目录中消失这一事实。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)