更新git repo时删除已删除的文件/文件夹

时间:2014-07-16 04:06:56

标签: git github

我创建了一个git repo并提交了文件/文件夹,一段时间后从我的本地git文件夹中删除了一个文件夹,并尝试更新repo我运行命令 -

git add .
git commit -m "second commit"
git remote add origin https://github.com/trialcode/test.git
git push -u origin master

但是删除的文件夹仍然显示在我的git仓库中,尽管文件已更新。让我知道git文件/文件夹更新我做错了什么。

仅供参考 - 我试过git branch -d folder_to_remove/ 但它抛出了一个错误 - error: branch 'folder_to_remove/' not found

2 个答案:

答案 0 :(得分:12)

Vijay's answer可行,但我也想指出一个额外的解决方案。

通常git add不会将已删除的文件添加到您的暂存区域(提交),所以当您运行时

git add .

您实际上并未暂存任何已删除的文件。

使用git add

暂存已删除的文件

如果您希望git add实际播放已删除的文件,则必须使用--update或 - u标记:

git add --update
# Or
git add -u

此外,您还可以使用--all-A标志,但如果我没记错的话,那个标志只会对从Git 2.0版本开始的已删除文件进行分级......或类似的东西。另请注意,该标志还会暂存未跟踪的文件,与-u不同,git add --all # Or git add -A 仅更新已跟踪的文件:

{{1}}

文档

答案 1 :(得分:9)

Git将在您的本地repo目录中有一个隐藏文件夹.git/。关于本地存储库的所有内容都将存储在该文件夹中。

因此,当您创建文件夹并提交时,它将被存储。之后,即使您从文件系统中删除文件或文件夹,也不会将其通知给本地git存储库。

要通知git您已删除文件或文件夹,请使用命令git rm

试试这个

git rm folder_name
git commit -m "removed folder"
git remote add origin https://github.com/trialcode/test.git
git push -u origin master

此处folder_name是您要删除的文件名或文件夹名称。