0

使用标题中的工具组合,当我签出一个分支时,SourceTree/GIT 将:

  1. 绝对不要从先前签出的分支中删除文件夹,所以如果我有带有 FOLDER1 和 FOLDER2 的 BRANCH-ALPHA,然后我检查了只有 FOLDER2 和 FOLDER3 而没有 FOLDER1 的 BRANCH-BETA,则 FINDER 中的结果结构将显示 FOLDER1还在那里。可以一遍又一遍地重现这一点。

  2. 通常甚至不会覆盖以前签出的分支中的文件,因此当我签出 BRANCH-BETA 时,我仍然会在 Eclipse 中看到 BRANCH-ALPHA。

我在结帐之前关闭 Eclipse,然后打开 Eclipse,CLEAN 和 BUILD 一切。这确实是GIT的问题。

唯一的“解决方案”是删除所有文件夹和所有元数据,然后签出分支。这通常会导致花费几个小时试图“说服” Eclipse 打开项目、创建新的工作区、新的元数据等,然后修复很多东西,比如路径等。

非常感谢有关如何进一步研究原因并找到解决方案的任何想法。

4

1 回答 1

0

Git 仅在签出新提交时删除空文件夹。您可能会看到明显空的目录,因为其中存储了隐藏文件。如果您尝试通过在 Finder 中打开它们来监控行为,则实际上是导致问题的原因,因为 Finder 会创建隐藏文件来跟踪文件夹的显示方式。

文件夹在那里真的让你烦恼吗?您可以添加一个在每次结帐后运行的结帐后挂钩git clean -dxf;这将删除 git 不知道的所有文件。请注意,它还会删除已编译的类,因此需要重新构建。

另一种可能性是某些东西正在锁定文件或目录,因此当它们仍被其他程序打开/锁定时,git 无法删除它们。这也可以解释为什么某些文件没有更新到正确的版本。切换分支时git会抱怨吗?如果文件确实被锁定,则应该这样做。

于 2013-01-05T06:47:50.787 回答