git子模块“您需要先解决当前索引”,但是没有合并冲突

时间:2018-08-06 02:58:27

标签: git

我有一个奇怪的问题,我无法解决。詹金斯(Jenkins)正在回购中构建。

它签出应用程序的当前提交(这是正确的),然后初始化子模块(也是正确的,并找到正确的提交)。

但是当它尝试执行git子模块更新时--init --recursive回购

它具有以下优点: app / views / license / edit.html:需要合并

问题是,没有冲突,并且当前commit src中的文件完全正确...

我只是不知道从这里去哪里。

 > git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > git config remote.origin.url git@bitbucket.org:TEAM/api-backend.git # timeout=10
Fetching upstream changes from git@bitbucket.org:TEAM/api-backend.git
 > git --version # timeout=10
using GIT_SSH to set credentials 
 > git fetch --tags --progress git@bitbucket.org:TEAM/api-backend.git +refs/heads/*:refs/remotes/origin/*
 > git rev-parse refs/remotes/origin/dev^{commit} # timeout=10
 > git rev-parse refs/remotes/origin/refs/heads/dev^{commit} # timeout=10
Checking out Revision 99ab7742966fd82f21044e7bf5f405eaf3bd085b (refs/remotes/origin/dev)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f 99ab7742966fd82f21044e7bf5f405eaf3bd085b
Commit message: "Front-end update"
 > git rev-list --no-walk 99ab7742966fd82f21044e7bf5f405eaf3bd085b # timeout=10
 > git remote # timeout=10
 > git submodule init # timeout=10
 > git submodule sync # timeout=10
 > git config --get remote.origin.url # timeout=10
 > git submodule init # timeout=10
 > git config -f .gitmodules --get-regexp ^submodule\.(.+)\.url # timeout=10
 > git config --get submodule.compose/web.url # timeout=10
 > git config -f .gitmodules --get submodule.compose/web.path # timeout=10
 > git submodule update --init --recursive compose/web
hudson.plugins.git.GitException: Command "git submodule update --init --recursive compose/web" returned status code 1:
stdout: app/views/license/edit.html: needs merge

stderr: error: you need to resolve your current index first
Unable to checkout '71e9f5f5d30ec8b2bcd7d341e4b607ab123a4ece' in submodule path 'compose/web'

我尝试了对有关文件进行一些更改的虚拟提交,并将其合并到dev分支,但这并不能解决问题...

让我感到困惑的是,为什么合并时它不告诉我存在冲突?

进一步测试

我做了父仓库的新克隆。并运行git子模块--init --recursive compose / web

它成功克隆并检出了正确的分支...

所以我什至不能在本地复制它。

有什么想法吗?

3 个答案:

答案 0 :(得分:0)

看起来您有合并冲突。试试:

git mergetool app/views/license/edit.html

答案 1 :(得分:0)

如所评论,问题出在Jenkins工作空间级别。

如果从头开始构建作业(空工作区),问题就消失了。

答案 2 :(得分:0)

错误:您需要先解决当前索引

git reset --merge 或 git merge --abort 如果您已经接受当前或传入的更改到您的文件将不起作用。只需按照以下步骤

  1. git add "fileName" ,您接受更改的文件
  2. git commit -m "你的提交信息"

现在您可以结帐或合并其他分支。