Gitflow: git flow start/finish 在没有提交或推送时报告未暂存的更改

创建于 2010-11-23  ·  21评论  ·  资料来源: nvie/gitflow

有时在执行 git flow start 或 finish 时,git flow 会报:

致命:工作树包含未暂存的更改。 中止。

然而,没有什么可以提交,也没有什么可以拉到/从遥控器上拉或推。 工作副本是最新的。

为了执行这些步骤,我不得不通过创建对“readme.txt”文件的更改的错误提交来解决这个问题,但这很乏味。 是否有另一个命令可以用来查看是什么阻止了 git flow start/finish 命令?

最有用的评论

只需在终端中执行以下命令:

git status
git add .
git status
git commit -m 'Commit typechanges'

这对我来说很有效 ;)

所有21条评论

请提供导致此问题的命令的重播。 这肯定会更容易分析导致此问题的原因。 尽量保持简短。

当您删除文件并且不会提交时,可能会发生这种情况。 使用git diff --cached检查暂存文件并提交。

git diff --cached没有输出。 任何想法,如何解决这个问题?

我有同样的问题。 你有什么决定吗?

最简单的解决方案是提交更改,删除存储库并重新克隆它。

多谢

大多数情况下,基于Eclipse的 ide 上出现eGit错误,当我使用git bashtortoise git ,不会出现此错误

git reset --hard origin/master 可以救你一命!

但是执行起来很奇怪:
状态
并在我的环境中重复该命令作为修​​复。:-)

我们的效果与@georgezlatev使用 Intellij Idea 13 在 MAC OS X 上工作的效果相同。似乎 git-flow 没有及时注册提交;-)

这会被修复吗?

我仅在尝试从子目录执行 git flow finish 时才会收到此错误。 它从 repos 根目录工作。
干杯伙计们

感谢这个线程是旧的,但我相信其他人仍然会收到这个错误并且会找到这个线程。 我正在使用 SourceTree 并收到此错误。 我设法通过右键单击我的功能分支然后合并到 develop/origin 来解决这个问题。 我能够推送我提交的更改并删除功能分支。

最好的选择是脚本在尝试完成功能之前执行 git status :

if output=$(git status --porcelain) && [ -z "$output" ]; 然后
# 结束
别的
# 正常错误

完成发布/修补程序分支时,这也是一个问题吗?

是的。 使用 Intellj-Gitflow 插件和 Bash。
当我在 bash 中运行“git status”并完成功能/发布/修补程序时,它可以工作。

在 SourceTree 中,当 SourceTree 显示没有更改时,我收到此错误(我正在尝试完成当前功能)。 直到我切换到终端并执行 git status 后,它才显示未提交的文件的类型更改(因为它没有显示在 SourceTree 中)。 我在项目中所做的更改是替换了两个 .framework 文件,因此从外观上看,这些 .framework 文件发生了很多内部更改。 最终 SourceTree 的错误实际上是正确的,但我很失望 SourceTree 无法向我显示阻止我完成功能分支的更改:(

我为我确认git status有助于查看 unstages 更改是什么

git reset --hard在这种情况下对我有用

git reset --hard 为我工作,因为 git status 没有显示任何未提交的更改。

只需在终端中执行以下命令:

git status
git add .
git status
git commit -m 'Commit typechanges'

这对我来说很有效 ;)

我有同样的问题。 我能够提交功能分支,但不能完成“功能完成”。 我切换到根目录运行 git flow 功能完成,它奏效了。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

88Alex picture 88Alex  ·  17评论

nvie picture nvie  ·  11评论

primeminister picture primeminister  ·  4评论

tianon picture tianon  ·  60评论

harshadyeola picture harshadyeola  ·  4评论