首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >git子树拉取说明工作树有修改,但git状态显示没有修改。

git子树拉取说明工作树有修改,但git状态显示没有修改。
EN

Stack Overflow用户
提问于 2010-09-02 10:00:58
回答 7查看 26.2K关注 0票数 41

如果我在我的某个存储库中执行此操作:

代码语言:javascript
复制
git subtree pull --prefix=frameworks/AquaticPrime --squash AquaticPrime

我明白了:

代码语言:javascript
复制
Working tree has modifications.  Cannot add.

如果我这样做(当然是在同一个地方):

代码语言:javascript
复制
git status

我明白了:

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

我不太清楚这是怎么回事。git status命令暗示我没有修改,所以我假设git子树拉是指与子树相关的不同分支中的修改,但这并不完全清楚。

有没有人能提供启迪?

EN

回答 7

Stack Overflow用户

发布于 2013-09-04 16:07:08

我也有同样的问题。在GIT源代码中,即使git status说工作树是干净的,当命令git diff-index HEAD返回结果时也会抛出错误。

为了避免这个错误,在我的例子中,我重新签出了工作树的当前分支,看起来一切正常:git checkout <branch>

有点困惑,但如果有人能解释一下为什么.

票数 39
EN

Stack Overflow用户

发布于 2016-08-19 19:40:03

git reset --hard给我修好了

来自git reset --help

--硬重置索引和工作树。之后对工作树中跟踪的文件所做的任何更改都将被丢弃。

票数 17
EN

Stack Overflow用户

发布于 2013-05-28 10:01:48

我已经绕过这个问题了。我的问题似乎是存储库是全新的:我从来没有向它提交过任何东西。一旦我向repo提交了一个文件,我就能够跳过这个错误。

但是,使用命令git subtree add C:\gitTest\repos\subA -d --prefix subA时,我得到了新的错误:

fatal just how do you expect me to merge 0 trees?

在浪费了一分钟之后,我发现它需要传递一个特定的版本给它。所以这个命令似乎成功了:

git subtree add C:\gitTest\repos\subA HEAD -d --prefix subA

显然,您不需要-d调试标志。

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

https://stackoverflow.com/questions/3623351

复制
相关文章

相似问题

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