在specfic提交时克隆git repo
作为当前工作流程的一部分,我们在创建时将某些git回购预克隆到用户HomeDir中。然而,随着这些存储库的增长和用户数量的增加,磁盘使用率变得越来越成问题 我从两个方面对此进行攻击:在specfic提交时克隆git repo,git,Git,作为当前工作流程的一部分,我们在创建时将某些git回购预克隆到用户HomeDir中。然而,随着这些存储库的增长和用户数量的增加,磁盘使用率变得越来越成问题 我从两个方面对此进行攻击: 没有更改文件的现有回购协议会得到git reset--hard$first\u commit,这会将它们恢复到一个小得多的初始状态。登录时通常使用的git pull,会像往常一样将它们更新为当前版本 新用户可以获得从$initial commit开始的回购协议,并且可以通过git pull将其更新到当前状态 虽然我
git pull
,会像往常一样将它们更新为当前版本$initial commit
开始的回购协议,并且可以通过git pull
将其更新到当前状态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分支——将上游设置为
,以设置主机
的上游:
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
如果你不需要任何git历史记录,你会为你的项目构建一个二进制文件并简单地下载它吗?@AndyRay-nope。这是一个多开发人员的环境,有点笨拙的工作流程。