如何从git存储库中删除目录?
我的GitHub存储库中有2个目录。我想删除其中一个。在不删除和重新创建整个存储库的情况下,我如何做到这一点?从git和local中删除目录 您可以使用两个目录签出“master”如何从git存储库中删除目录?,git,github,bitbucket,delete-file,git-bash,Git,Github,Bitbucket,Delete File,Git Bash,我的GitHub存储库中有2个目录。我想删除其中一个。在不删除和重新创建整个存储库的情况下,我如何做到这一点?从git和local中删除目录 您可以使用两个目录签出“master” git rm -r one-of-the-directories // This deletes from filesystem git commit . -m "Remove duplicated directory" git push origin <your-git-branch> (typical
git rm -r one-of-the-directories // This deletes from filesystem
git commit . -m "Remove duplicated directory"
git push origin <your-git-branch> (typically 'master', but not always)
如果出于某种原因,karmakaze所说的不起作用,您可以尝试使用或使用您的文件系统浏览器(例如,在Windows文件资源管理器中)删除您想要的目录。删除目录后,发出命令:
git add-A
然后
git提交-m'删除目录'
然后
git-push-origin-master
如果您删除目录中的文件(如其他答案所述,使用git-rm
),那么就git而言,目录不再存在。不能提交空目录,也不能删除空目录
这与subversion不同,在subversion中,您必须显式地svn rm emptyfolder/
,这也是为什么git的man
页面将自己描述为“愚蠢的内容跟踪器”的原因
有关以下链接的答案:
目前正在设计git索引
(暂存区域)仅允许文件
被列入名单,没有人能胜任
进行更改以允许为空
目录已经足够关心了
这种情况需要补救
目录会自动添加
在其中添加文件时。那个
也就是说,永远不必添加目录
到存储库,并且不会被跟踪
他们自己
你可以说“git add
”然后
将在其中添加文件
如果你真的需要一个目录
存在于签出中您应该创建一个
把它归档。gitignore对于
这一目的;你可以让它空着,
或者填写您需要的文件名
希望显示在目录中
您可以尝试以下方法:
git rm-rf
它将强制删除目录。要仅从git存储库而不是从本地删除文件夹/目录,请尝试3个简单命令。
删除目录的步骤
git rm -r --cached FolderName
git commit -m "Removed folder from repository"
git push origin master
在下次提交时忽略该文件夹的步骤 要从下一次提交中忽略该文件夹,请在根文件夹(git初始化的主项目目录)中创建一个名为.gitignore 并将该文件夹名称放入其中。您可以忽略任意数量的文件/文件夹 .gitignore文件将如下所示
/FolderName
您可以使用Atlasian源代码树(Windows)()。
只需从树中选择文件并按下顶部的“删除”按钮。文件将从本地存储库和本地git数据库中删除。然后提交,然后推送。您可以在本地删除文件夹,然后推送,如下所示:
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
可以被存储库的任何其他分支所取代。我的一位同事建议,我认为这很有效。它不仅可以删除不需要的数据,还可以从任何相关的提交信息中清除存储库。第一个git命令需要在删除任何内容之前知道您是谁
mkdir <YOUR-DIRECTORY>
Git不会意识到我们所做的更改,因此我们添加了隐藏的。保留文件以使Git意识到这个新更改
touch /YOUR-directory/.keep
现在,如果点击git status
git将知道这些更改
如果你想删除这个目录,你应该使用这个命令
rm -r <YOUR-DIRECTORY>
rm-r
如果您使用git status
进行检查,您将看到目录已被删除。对于删除空文件夹
我想删除我创建的一个空目录(文件夹),git无法删除它,经过一些研究我了解到
Git不跟踪空目录。如果您的工作树中有一个空目录,您只需使用
rm -r folderName
没有必要涉及Git。我之前已经提交了该文件夹,并且希望删除历史记录中的目录
我做了以下工作:
将文件夹添加到.gitignore
:
echo Folder_Name/ >> .gitignore
从所有提交中删除:
git filter-branch --index-filter 'git rm -rf --cached --ignore-unmatch Folder_Name/' --prune-empty --tag-name-filter cat -- --all
从旧提交中删除引用:
git for-each-ref --format="%(refname)" refs/original/ | xargs -n 1 git update-ref -d
确保所有旧参考完全移除
rm -Rf .git/logs .git/refs/original
执行垃圾收集
git gc --prune=all --aggressive
将更改推送到联机存储库:
git push
你到此为止
但您可以通过以下操作将所有更改推送到所有分支:
但是要小心这个命令
git push origin --all --force
git push origin --tags --force
之后,该文件夹被从git中删除,但没有从本地磁盘中删除。这两个答案的组合对我很有用
git rm -r one-of-the-directories
git commit . -m "Remove duplicated directory"
git push
如果仍显示一些警告,请手动删除这些文件
git filter-branch --tree-filter 'rm -rf path/to/your/file' HEAD
git push
尝试rm-r-f
或rm-r--force
-
强制删除文件夹目录中是否有文件?@Iarsmans:Yes 6个文件。两个目录都是相同的,除了一个是大写的,另一个是小写的。您只需要:git rm-r--cached folder\u name
我的情况完全相同。当我尝试git rm-r myFolder
时,它工作了,但也删除了“myFolder”目录中的所有内容。必须还原“MyFolder”目录中的所有内容,然后提交。@Justin若要仅从git中删除并保持文件系统不变,请使用git rm-r--cached MyFolder
我收到的错误消息是:致命:pathspec“目录”与任何文件都不匹配。@user2441441我在尝试时出现了此错误
git rm -r one-of-the-directories
git commit . -m "Remove duplicated directory"
git push
git filter-branch --tree-filter 'rm -rf path/to/your/file' HEAD
git push