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

Tri*_*der 1 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
Run Code Online (Sandbox Code Playgroud)

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

仅供参考 - 我试过了,git branch -d folder_to_remove/ 但是却发生了错误 - error: branch 'folder_to_remove/' not found.

小智 12

Vijay的答案会奏效,但我也想指出一个额外的解决方案.

通常git add不会将已删除的文件添加到暂存区域(要提交),因此在运行时

git add .
Run Code Online (Sandbox Code Playgroud)

你实际上没有播放你删除的任何文件.

暂存已删除的文件 git add

如果您想要git add实际暂存已删除的文件,则必须使用--updateor - uflags:

git add --update
# Or
git add -u
Run Code Online (Sandbox Code Playgroud)

另外,你也可以使用--all或者-A标志,但是如果我没记错的话,那个标志只会从Git 2.0版本开始分段删除的文件...或类似的东西.另请注意,该标志还会播放未跟踪的文件,这与-u仅更新已跟踪的文件不同:

git add --all
# Or
git add -A
Run Code Online (Sandbox Code Playgroud)

文档


Vij*_* R. 9

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

因此,当您创建文件夹并提交时,它将被存储.之后,即使您从文件系统中删除文件或文件夹,也不会将其通知给本地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
Run Code Online (Sandbox Code Playgroud)

以下folder_name是您要删除的文件名或文件夹名称.

  • +1和作为注释 - 我们需要添加`-r`标志来递归删除目录. (2认同)