use*_*078 6 git version-control sparse-checkout
我昨天开始使用 Git,在此之前我已经使用 SVN 多年了。让我向您解释一下我到底想实现什么目标:
我有一个针对不同项目的主要 git 存储库。像这样的东西:
我无法为这些子项目创建单独的存储库。现在我(或其他用户)应该能够在这些独立项目中签出/提交/推送/拉取。
为此,我尝试使用以下命令进行稀疏结帐:
mkdir proj1; cd proj1git initgit remote add origin https://main_repogit config core.sparsecheckout trueecho "proj1/" > .git/info/sparse-checkoutgit pull origin master现在我需要的是获取 proj1 中同一当前目录中存在的所有文件。我得到的是这样的:
/proj1/proj1/files_and_dirs_in_proj1
Run Code Online (Sandbox Code Playgroud)
我需要的:
/proj1/files_and_dirs_in_proj1
Run Code Online (Sandbox Code Playgroud)
其次,checkout-dir 的行为不像 git repo。它不带有任何 .git 目录。所以我不明白如何在稀疏签出项目中进行提交/推/拉。
我希望我解释得很好。请建议。
如果我正确理解了你,那么你想要:
\n\n在这种情况下,您可以使用以下简单步骤:
\n\n1) 将你的主仓库添加到 git
\n\ngit init\ngit remote add origin ...\ngit add .\ngit commit -m \'Initial commit\'\ngit push\nRun Code Online (Sandbox Code Playgroud)\n\n2) 克隆并调整每个命令的 git 存储库(teamproj1、teamproj2、teamproj3,...)。为每个团队/项目重复下面的代码
\n\ngit clone ... teamproj1\ncd teamproj1\ngit config core.sparsecheckout true\necho \'proj1\' \xe2\x80\xba .git/info/sparse-checkout\ngit read-tree -m -u HEAD\nRun Code Online (Sandbox Code Playgroud)\n\n3)宾果游戏。每个命令都有自己的文件夹和项目。这个文件夹是普通的 git repo,但是这个 repo 只会显示其中的一些文件.git/info/sparse-checkout
我添加了一些图纸以方便理解该方案
\n\n\n| 归档时间: |
|
| 查看次数: |
6099 次 |
| 最近记录: |