首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >git svn dcommit总是失败,并显示"Cannot dcommit with a dirty index“。

git svn dcommit总是失败,并显示"Cannot dcommit with a dirty index“。
EN

Stack Overflow用户
提问于 2010-08-26 12:36:41
回答 2查看 3.2K关注 0票数 2
代码语言:javascript
复制
$ git --version
git version 1.7.0.3

我克隆了一个SVN存储库,并进行了提交:

代码语言:javascript
复制
$ git svn clone --stdlayout http://svn/example/project
$ echo test >> blah.txt
$ git commit -m "Something"

当我尝试dcommit回到SVN时,我得到了以下错误:

代码语言:javascript
复制
$ git svn dcommit
Cannot dcommit with a dirty index.  Commit your changes first, or stash them with `git stash'.
 at .../git/1.7.0.3/.../libexec/git-core/git-svn line 497

..despite分支看起来很干净:

代码语言:javascript
复制
$ git status
# On branch master
nothing to commit (working directory clean)

我能看到不存在的“未提交的更改”的唯一地方是在gitk中,它显示“本地未提交的更改,没有签入索引”。

出于某些原因,运行git stash会允许dcommit正常工作:

代码语言:javascript
复制
$ git stash
No local changes to save
$ git svn dcommit
Committing to http://svn/example/project ...
        M       blah.txt
Committed r65913
        M       blah.txt
r65913 = a5547d761108d233211f115429e23ddca73bf4bc (refs/remotes/trunk)
No changes between current HEAD and refs/remotes/trunk
Resetting to the latest refs/remotes/trunk

我有一个运行git stash; git svn dcommit; git stash apply的别名-但这不是最好的解决方法,因为它会在实际使用存储时导致合并错误

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-08-26 12:39:31

在我写这个问题的时候,我发现了以下提交:

http://repo.or.cz/w/git.git/commitdiff/181264ad590ffef9d956fdd023369869c2d0a55f

如果在工作目录中访问了未修改的文件,则

dcommit命令将失败:

无法使用脏索引进行dcommit。首先提交您的更改,或者使用“`git stash”来隐藏它们。

这是因为"git diff- index“报告了索引和文件系统之间的差异:

:100644 100644 d00491......000000......M文件

修复方法是在"git diff-index“之前运行"git update-index --refresh”,就像在"git diff-files“之前运行git-rebase和git-rebase--interactive一样。

这将更改dcommit,以便在退出之前显示已修改文件的列表。

还要为"git svn rebase“添加一个类似的测试用例。

无法从git日志中破译更改的版本,但看起来更改应该在1.7.2.2之后的版本中

编辑:截至2011年11月19日,提交仍然只在主分支中:

代码语言:javascript
复制
$ git branch --contains 181264ad590ffef9d956fdd023369869c2d0a55f
* master

Edit2:此更改现在是git 1.7.3以后的版本

代码语言:javascript
复制
> git tag --contains 181264ad590ffef9d956fdd023369869c2d0a55f | sort -V
v1.7.3
[...]
票数 3
EN

Stack Overflow用户

发布于 2014-05-25 08:29:02

当我尝试执行git svn dcommit时,我收到了类似的错误。

我尝试从非根git文件夹(其中包含.git-subfolder)和SVN repo中的更改提交,但我尚未通过git svn rebase检索到git。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3572074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档