【发布时间】:2010-09-02 02:00:57
【问题描述】:
如果我在我的某个存储库中执行此操作:
git subtree pull --prefix=frameworks/AquaticPrime --squash AquaticPrime
我明白了:
Working tree has modifications. Cannot add.
如果我这样做(当然是在同一个地方):
git status
我明白了:
# On branch master
nothing to commit (working directory clean)
我不太确定这里发生了什么。 git status 命令暗示我没有修改,所以我假设 git subtree pull 是指与子树相关的不同分支中的修改,但并不完全清楚。
谁能赐教?
【问题讨论】:
-
快速查看源代码,
git-subtree打印出当git diff-index HEAD --exit-code --quiet退出“失败”时,即存在更改。如果你运行git diff-index HEAD会发生什么? -
你也可以试试
-d(调试)选项。 -
当我运行 git diff-index HEAD 时,我得到“致命:不明确的参数 'HEAD':未知修订或路径不在工作树中。”。如果我使用 -d 调试标志,输出类似。所以问题是,为什么 HEAD 是未知的?
-
@BT 我认为您尝试在没有任何提交的情况下在 repo 中使用 git subtree。在这种情况下,应该增强 Git 以提供更有用的错误。我刚刚添加了一个任意提交来启动 repo,然后
subtree在那之后工作 -
我收到了同样的信息,但我仍然需要提取 master 和我的功能,然后将 master 合并到功能,然后才能从子树中提取最近的提交。