Git工作树很脏

时间:2013-11-12 10:31:43

标签: git gerrit git-commit git-commands

如果我执行git review git告诉我“工作树很脏”错误。

我做了一个提交,然后我发送了审核。之后,我使用git pull从上游更新分支。现在我需要修改以前的提交消息,因此,有我的命令:

1)git reset <id-of-the-commit-to-modify>

2)git commit --amend

打开vim来修改我的提交。但是这里出现了关于我的提交和其他人提交的信息,我不知道为什么。但是,我修改了提交消息并写入/关闭vim。

3)git review

此命令引发此错误:

Errors running git rebase -i remotes/gerrit/master
doc/source/configuration.rst: needs update
doc/source/developing.rst: needs update
tools/sample_data.sh: needs update
Working tree is dirty

我做错了什么?

2 个答案:

答案 0 :(得分:0)

一旦将更改推送到Gerrit,就可以直接获取它。在Gerrit审查板上,您可以找到每个补丁集的chekcout命令,如下所示:git fetch ssh://ebalbar@gerrit.ericsson.se:29418/TCC/TitanSim refs/changes/86/129686/5 && git checkout FETCH_HEAD然后,您可以像往常一样修改提交,并再次推送新的更改。检查完本地分支并使用远程分支重置它:git reset --hard origin/<remote_branch>也是一个很好的answer如何修改直接推送的提交。

答案 1 :(得分:0)

没有模式选项的

git reset <id-of-the-commit-to-modify>默认为--mixed。这就是manual

中的重置所说的内容
--mixed
 Resets the index but not the working tree (i.e., the changed files are preserved but not marked for commit) and reports what has not been updated. This is the default action.

这基本上意味着您的索引已被重置,但不是您的工作文件。因此,您从上游提取的所有文件仍保留在工作树中。 您应该使用git reset --hard <id-of-the-commit-to-modify>这将重置索引并删除上游提取的文件。然后,您可以修改您的提交并将其发送以供审核。