作为我们当前工作流程的一部分,我们在创建时将某些 git 存储库预克隆到用户主目录中。然而,随着这些存储库的增长和用户数量的增加,磁盘使用变得越来越成问题。
我在两个方面对此进行攻击:
git reset --hard $first_commit
将它们恢复到更小的初始状态。git pull
登录时通常会像往常一样使它们保持最新状态。$initial commit
并且可以通过git pull
.虽然我已经为 #1 提出了一个解决方案并将其提交审查,但我在为 #2 提出一个不会产生大量 IO 开销的解决方案时遇到了麻烦。
简单的解决方案就是:
git clone /opt/git/app.git /home/user/app && \
git -C /home/user/app reset --hard $first_commit
然而,检查完整的工作树只是为了删除它会导致大量额外的 IO,当创建新的应用程序服务器和所有必需的用户时,这是一个有效的问题。
我已根据此答案尝试了以下操作,但未正确设置生成的存储库以从中提取origin/master
:
git init /home/user/app
git -C /home/user/app remote add origin /opt/git/app.git
git -C /home/user/app fetch origin $first_commit
它似乎根本没有以某种方式设置任何分支,并且缺少以下内容.git/config
:
[branch "master"]
remote = origin
merge = refs/heads/master
提前致谢。
使用git branch --set-upstream-to
到组master
的上游:
git init
git remote add origin /opt/git/app.git
git fetch origin
git reset --hard "$first_commit"
git branch --set-upstream-to=origin/master
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句