如何从git存储库中删除一个目录?
我有我的GitHub存储库上的2个目录。 我想删除其中的一个。 我怎么能做到这一点,而不删除和重新创build整个存储库?
从git和local删除目录
你可以签出两个目录“主”;
git rm -r one-of-the-directories git commit -m "Remove duplicated directory" git push origin <your-git-branch> (typically 'master', but not always)
从git中删除目录,但不是本地的
正如在评论中提到的,你通常想要从git中删除这个目录,但不能从文件系统(本地)中完全删除它,
在这种情况下使用:
git rm -r --cached myFolder
只从git仓库中删除文件夹/目录,而不是从本地尝试3个简单的命令。
删除目录的步骤
git rm -r --cached FolderName git commit -m "Removed folder from repository" git push origin master
在接下来的提交中忽略该文件夹的步骤
要忽略来自下一次提交的文件夹,请创build一个名为.gitignore的文件,并将该文件夹的名称放入其中。 你可以放多less你想要的
.gitignore文件将如下所示
/FolderName
如果出于某种原因,karmakaze所说的不起作用,可以尝试删除要删除的目录(通过文件系统浏览器),发出命令
git add -A
接着
git commit -m 'deleting directory'
接着
git push origin master
。
如果你删除目录中的文件(使用git rm
作为其他答案的解释),那么就git而言,目录不再存在。 您不能提交一个空目录,也不能删除一个。
这是不同的颠覆,你必须明确svn rm emptyfolder/
,并且顺便说一句,为什么git man
页描述自己是“愚蠢的内容跟踪器”
关于“如何将一个空目录添加到git存储库”的答案链接到这个主题的常见问题 :
目前,git索引(登台区域)的devise只允许列出文件,没有人能胜任这个更改,以允许空目录已经足够关心这种情况来解决这个问题。
添加文件时自动添加目录。 也就是说,目录永远不必被添加到存储库,并且不会自行跟踪。
你可以说“
git add <dir>
”,它会在那里添加文件。如果你确实需要一个目录在结帐中存在,你应该在其中创build一个文件。 .gitignore适合这个目的; 您可以将其保留为空,或者填写您希望在目录中显示的文件的名称。
你可以试试这个: git rm -rf <directory_name>
它会强制删除目录。
您可以在本地删除该文件夹,然后按下,如下所示:
git rm -r folder_name git commit -m "your commit" git push origin master
转到您的git目录,然后键入以下命令: rm -rf < 目录名称 >
删除目录后提交更改: git commit -m“您的提交消息”
然后,只需按下远程GIT目录上的更改: git push origin < 分支名称 >
我通常使用git add --all
从远程存储库中删除文件/文件夹
rm -r folder_name git add --all git commit -m "some comment" git push origin master
master
可以被存储库的任何其他分支replace。
您可以使用Attlasian源代码树(Windows)( https://www.atlassian.com/software/sourcetree/overview )。 只需从树中select文件,然后按下顶部的“删除”button即可。 文件将从本地存储库和本地git数据库中删除。 然后提交,然后推送。
我的一位同事build议我认为强大的BFG Repo-Cleaner 。 它不仅可以删除不需要的数据,还可以清除存储库中的相关提交信息。
首先git命令需要知道你是谁之前删除任何东西
- git init
- git config user.name“someone”
- git config user.email“someone@someplace.com”
- git rm -r
- git commit -m“删除目录”
- git推送起源大师
要添加新目录:
mkdir <YOUR-DIRECORT>
但是现在Git没有意识到这个新目录,因为Git保持文件的目录不是DIRECTORY目录
git status
git不会意识到我们所做的更改,所以我们添加隐藏的.keep
文件以使Git知道这个新的更改。
touch /YOUR-directory/.keep
现在,如果你打git status
Git会意识到这些变化。
如果你想删除目录,你应该使用这个命令。
rm -r <YOUR-DIRECORT>
如果您使用git status
进行检查,您将看到该目录已被删除。