2

我在我的 git 存储库中添加了一个新的子目录:

git add feeds

然后提交了这个并将其推送到 GitHub,但似乎我已经提交了一个符号链接/快捷方式,而不是其中的实际目录和文件。

见这里:http: //github.com/G4EGK/RSS-Reader

知道什么是“饲料”吗?

我想删除它并正确添加我的文件。我尝试了以下方法,但git status说没有任何改变:

git rm feeds
git add feeds/\*.php

要删除提要,我是否运行以下命令?

git filter-branch --tree-filter 'rm -f feeds' HEAD

更新

谢谢韦斯。

$ ls -l
total 16
-rw-r--r--@  1 greg  staff  890  2 Apr 19:11 README.md
drwxr-xr-x  10 greg  staff  340  3 Apr 09:30 feeds
-rw-r--r--@  1 greg  staff  372  2 Apr 19:24 rssreader.php
drwxr-xr-x   3 greg  staff  102  2 Apr 15:23 tests
drwxr-xr-x   7 greg  staff  238  2 Apr 15:44 transfer
$ git submodule feeds
No submodule mapping found in .gitmodules for path 'feeds'

git filter-branch没有从我的仓库中删除这个子模块(当我查看时它仍然被跟踪git status

为了消除这个错误,我恢复了最后两次提交(我尝试添加提要类)。

$ git log
commit 276b2392....
Author: Greg K <...@gmail.com>
Date:   Sat Apr 3 23:40:14 2010 +0100

    Add feed classes

commit d9814942....
Author: Greg K <...@gmail.com>
Date:   Sat Apr 3 23:37:52 2010 +0100

    Add feed classes

commit 2b7fb93a....
Author: Greg K <...@gmail.com>
Date:   Fri Apr 2 19:47:09 2010 +0100

    Use auto-detect line length for fgets()

使用了命令:

git rebase -i HEAD~3

然后我删除了提交 2 和 3,留下了第一行(我在 4 月 2 日的提交),保存了我的更改(:wq)并强制推送到 GitHub。

git push origin +master

现在我的 GitHub 存储库又回到了添加提要之前的位置。

我最初的错误是在最初添加提要时忘记在末尾使用斜杠。我应该用

git add feeds/
4

1 回答 1

2

看起来您添加feeds为子模块。查看提交:http: //github.com/G4EGK/RSS-Reader/commit/276b2392acd2abbd1fadb310768796675d287771

查看git submodule status

于 2010-04-04T00:04:02.583 回答