Git提交时该把dist目录一起提交吗?

Top丶江梅 阅读 6

我们团队用Vue CLI搭的项目,每次build完都会生成dist目录。我不确定要不要把这个目录也git add进去,因为感觉它属于构建产物,但又怕别人拉代码后没法直接部署。

之前试过不提交dist,结果测试环境部署失败了;提交了又觉得仓库变得很臃肿。到底该怎么处理?

<template>
  <div id="app">
    <HelloWorld msg="Welcome to Your Vue.js App" />
  </div>
</template>

<script>
import HelloWorld from './components/HelloWorld.vue'
export default {
  name: 'App',
  components: { HelloWorld }
}
</script>
我来解答 赞 4 收藏
二维码
手机扫码查看
1 条解答
シ雨路
シ雨路 Lv1
这个问题其实很常见,我来给你捋一捋。

先说结论:不要提交 dist 目录。

dist 是构建产物,相当于你把源代码编译成了浏览器能直接运行的静态文件。这东西有两个特点:第一,每次 build 完内容都可能不一样,git 会认为文件经常变化,产生大量无意义的 diff;第二,它完全可以通过源码重新构建出来,既然这样何必占仓库空间呢。

你之前遇到的问题——不提交 dist 导致测试环境部署失败——这不是因为你不应该提交 dist,而是你的部署流程没配置对。

正确做法是这样的:

第一步,把 dist 加入 .gitignore

打开项目根目录下的 .gitignore 文件(如果没有就新建一个),加上这么一行:

dist/


这样 git 就会自动忽略这个目录,不会提示你提交。

第二步,配置正确的部署流程

测试环境和生产环境部署时,应该在服务器上执行构建命令,而不是直接拉 dist 目录。最常见的做法是用 CI/CD,比如 GitHub Actions、GitLab CI 或者 Jenkins。

举个小例子,如果你用 GitHub Actions,可以在项目根目录创建 .github/workflows/deploy.yml:

name: Deploy to Production

on:
push:
branches: [main]

jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
# 拉取代码
- uses: actions/checkout@v3

# 安装依赖
- name: Install dependencies
run: npm install

# 构建项目
- name: Build
run: npm run build

# 部署(这里用 rsync 举例,具体看你服务器情况)
- name: Deploy
run: |
# 这里写你的部署命令
# 比如用 scp 把 dist 目录传到服务器
# 或者用 rsync、ftp 等方式


这样每次代码合并到 main 分支时,CI 就会自动构建并部署,你不需要手动处理 dist 目录。

第三步,本地开发时注意

平时开发用 npm run serve 就行,这个是热重载的开发模式。如果你想本地预览构建结果,可以手动跑 npm run build,然后看看 dist 目录的内容,但提交代码时别把 dist 加上。

总结一下:dist 不提交是对的,部署失败是因为部署流程需要配置 CI/CD 或者在服务器上执行构建命令,而不是把构建产物提交到仓库。
点赞
2026-03-16 16:21