Go项目传到git时vendor目录传输不成功解决方案

问题描述

之前被借到另外一个组跟进一个项目,对口的开发在做go的项目,在用jekins打包的过程中遇到如下问题:问题描述

问题分析

看报错提示是没有找到对应的包,但是实际查看开发本地代码中是包含相应包的,此时怀疑代码没有上传完整,就又重新push了几次,发现结果都一样。后来到git上查看,再到git上查看,发现相应路径下的依赖包目录打开后里面没有相应的内容,只有一个链接似的东西。至此,定位到问题,相应资源包没有正确上传到git上,导致jekins打包时拉取的代码中缺少了对应的资源,抛出错误信息(此时,即使打包成功,产物也无法正常运行)。

解决办法

发生此类问题的原因很简单,经过本次遇到该问题的一番学(折)习(腾),总计出来的解决办法一般有以下3种:

  1. 如果依赖包是引用的github上的资源,如此处使用的logrus日志框架,那么就需要注意检查,将相应依赖包目录下的.git文件夹删除,否则,git会将它识别为单独的一个仓库。注意将项目下除了项目本身的.git文件夹都删除掉。
  2. 如果非第一种情况,可以试试将整个vendor文件夹剪切出去,然后commit一次,commit之后将vendor文件夹再粘贴回来,重新git add,git commit,git push一下。
  3. 如果非第一种情况(目录下没有.git文件夹),第二种方法也不好使,而且在本地手动git add依赖包时提示fatal: Pathspec ‘xxx’ is in submodule之类的信息,可以试试使用git rm -rf --cached path(你的文件夹路径)命令,然后重新git status一下,将需要提交的东西重新add,commit后push到远端仓库中。(该种方法也是最后本次问题使用的解决办法)

你可能感兴趣的:(Git)