Git:如何将 dist 目录推送到同一存储库的单独分支

van*_*178 5 git deployment git-branch gitlab gulp

我在现有存储库中有一个项目,文件夹结构:

myproject (master)
+-- app/ (master)
+-- dist/ (in .gitignore, but i need it as other branch)
+-- node_modules (.gitignore)
+-- index.html (master)
+-- gulpfile.babel.js (master)
+-- package.json (master)
Run Code Online (Sandbox Code Playgroud)

有没有办法推dist送到同一存储库的单独分支?
澄清一下,我只想要分支中的dist文件deploy,并将其他文件保留在master.

Von*_*onC 6

有没有办法推dist送到同一存储库的单独分支?

有,使用git submodule.

  • 创建一个孤立分支deploy
  • 将您的dist文件夹内容复制到空仓库中,添加并提交,然后推送。
  • 将该分支添加为dist文件夹子模块。

那是:

git checkout --orphan deploy
# copy your folder content
git add .
git commit -m "deploybranch folder content"
git push -u origin deploy
Run Code Online (Sandbox Code Playgroud)

然后

git checkout master
git submodule add -b deploy -- /remote/url/of/your/own/repo dist
git commit -m "Add deploy branch as submodule"
git push
Run Code Online (Sandbox Code Playgroud)

在您的master分支中,您将deploy通过dist根文件夹子模块保留一个引用。

话虽如此,请记住,生成和部署的内容通常存储在源代码控制文件系统中,而是存储在NexusArtifactory等二进制引用中:确保不要在其中保存大量二进制文件。