我昨天开始使用 Git,在此之前我使用 SVN 已经很多年了。让我解释一下我到底想要达到什么目标:
我有一个针对不同项目的主要 git 存储库。像这样的东西:
- main_repo/proj1
- main_repo/proj2
- main_repo/proj3
我无法为这些子项目创建单独的存储库。现在我(或其他用户)应该能够签出/提交/推送/拉入这些独立的项目。
对于这件事,我正在尝试使用以下命令进行稀疏结帐:
mkdir proj1; cd proj1
git init
git remote add origin https://main_repo
git config core.sparsecheckout true
echo "proj1/" > .git/info/sparse-checkout
git pull origin master
现在我需要的是在同一个当前目录中获取 proj1 中存在的所有文件。我得到的是这样的:
/proj1/proj1/files_and_dirs_in_proj1
我需要的:
/proj1/files_and_dirs_in_proj1
其次,checkout-dir 的行为不像 git repo。它不携带任何 .git 目录。所以我不明白如何在 sparse-checkedout projs 中进行提交/推送/拉取。
我希望我解释得很好。请建议。