【问题标题】:Can't add new file to repository in EGit无法将新文件添加到 EGit 中的存储库
【发布时间】:2012-09-30 07:02:33
【问题描述】:

我将 EGit 与 Eclipse Juno 一起使用。 我与本地存储库合作,世界很好。 甚至添加一个 GitHub 存储库似乎也没问题。我将它添加到“远程”下的本地存储库中,因此我可以轻松地将提交推送到 github。 但过了一会儿,我注意到没有新文件添加到存储库中,即使我正在提交更改。 它们只是不受版本控制。它们没有符号,这应该意味着它们被忽略了。 这是我的.ignore

.gwt
gwt-unitC
ache
Versandanzeige_Web_proto.war
Versandanzeige_Web.war
war/ajax
war/WEB-INF/classes
war/WEB-INF/deploy
www-test
  • 文件在 src 中,所以甚至没有关闭。
  • 即使选中“显示未跟踪的文件”,新文件也不会出现在提交对话框中。它们不会出现在暂存窗口中。
  • RK -> 团队 -> “添加到索引”没有帮助。
  • 文件具有相同的权限,属于同一用户
  • 他们绝对不会出现在 github

任何想法如何解决这个问题?需要任何其他信息吗?

更新: 错误日志中没有错误。

我的最新分支旁边确实有 (HEAD)。

更多详情: 我得到了我的行李箱 T,从 T0 开始。在 T1,有一个分支 A,它对 T1 进行了更改。 在 T2 处,还有另一个分支 B。它对 T2 没有任何更改。 奇怪的是:它没有在历史视图中显示。 master 分支也不见了。 我仍然可以切换到它们。当我做git reflog 时,在 T2 之前或包括 T2 之前没有条目,只有之后的所有条目。
我删除了没有提交的分支:

新文件仍显示为已忽略:

命令行输出:

$ git branch -a: 
* master 
maven 

$ git status 
# On branch master nothing to commit (working directory clean)

关于分离的 HEAD 提议:我没有执行文章中描述的操作,而是检查旧状态并从中工作。而且我看不到任何未完成的提交。

对不起,我的英语不好,我有一段时间没有使用它。如果我写了一些难以理解的东西,请要求澄清。

更新: 我可以在另一个文件夹(/Versandanzeige_Web/war/WEB-INF/lib/gwt-servlet.jar)中添加一个文件。

【问题讨论】:

  • 错误日志视图中是否有异常?
  • 你不是处于超然状态吗? eclipsesource.com/blogs/2011/05/29/…
  • @KarenButzke:没有错误我无法连接到问题,当我尝试将文件添加到索引时也没有任何新错误
  • @VonC:我不确定。我确实有一个(头)。我将我的分支重新定位为(HEAD),所以我现在正在做一个 HEAD。我仍然无法提交新文件。不过有一件奇怪的事情:我在 EGit 中缺少分支。它们出现在 github 上,但不在 EGit 中(请参阅更新)。
  • 寻找你的分支,如我提到的文章中所示:你有一个活跃的分支吗?在 HEAD 中工作是不够的:HEAD 必须在分支名称旁边。

标签: eclipse git github egit


【解决方案1】:

好的,我发现了错误。 出于某种原因,我真的不知道,我的项目文件夹(在存储库文件夹中)上方还有另一个 .gitignore 文件,其中包含了我的 COMPLETE 项目文件夹。我真的不知道这是怎么发生的。当然,这个文件并没有出现在 Eclipse 中。 我试图在命令行上添加文件,但删除了错误消息“文件在 .gitignore 文件中”。 删除该文件后,它找到了。 给您添麻烦了。

【讨论】:

  • 优秀。 +1。很高兴您找到了根本原因。
  • 好+1。我得到完全相同的 pb 并在顶部发现了意外的 .gitignore 阻止了暂存
  • 谢谢!我花了一天的时间才找到这个答案,终于可以提交了!
  • 你也找到了我的根本原因!谢谢!
  • 我的略有不同(我不小心 - 不知道如何 - 将 /src/ 添加到 gitignore 中) - 但这个答案为我指明了正确的方向:-)
【解决方案2】:

有时 EGit 无法正常工作,添加到索引也不起作用。在这种情况下,您可以使用文件资源管理器转到项目的根文件夹(放置 .git 文件夹),右键单击文件夹内的空白区域,选择“git bash”。这将为您打开 git 控制台。现在输入“git add path_to_file”。这会将文件添加到 git 系统以进行索引。现在去在 Eclipse 中刷新你的项目,你会看到它被添加到了索引中。这可以用于解决 eclipse 内部的冲突,因为通过重新添加合并的文件,添加到索引表示“标记为已合并”到 git 系统。

有时“从索引中删除”在 Eclipse 中不起作用,您可以在这种情况下做同样的事情:这次写“git remove --cached -f path_to_file”。此处不要忘记添加“--cached”,否则您的文件将被删除。 -f 代表“强制”以强制执行命令。对于要从​​索引中删除的任何文件夹(目录)类型“git remove --cached -r -f path_to_folder”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-23
    • 1970-01-01
    • 2020-10-18
    • 1970-01-01
    • 2019-09-17
    相关资源
    最近更新 更多