如何在GIT中一次删除多个文件夹

时间:2016-02-27 13:56:39

标签: git

嗨推送到存储库的几个解决方案。不幸的是,我没有设置.gitignore。 目前,我的存储库存储了数十个bin / Debug和Obg / Debug文件夹。 有没有办法立即删除它们?

3 个答案:

答案 0 :(得分:1)

如果只有一个提交受到影响,那么git rm文件会创建.gitignore,然后git add -A; commit --amend --no-edit,然后git push --force origin master警告: --force可能会破坏合作者的内容,但如果没有人撤消您的提交,那么它应该没问题。

如果有多次提交,请查看this guide

在上面的答案中我假设你想节省磁盘空间。如果这不是问题,那么只需git rm文件,将它们添加到.gitignore并创建新提交。

答案 1 :(得分:0)

public final String CREATE_QUESTIONS_TABLE = "CREATE TABLE Questions(QuestionID INTEGER PRIMARY KEY GENERATED ALWAYS AS IDENTITY,"
        + "SubmittedTime TIMESTAMP NOT NULL,"
        + "Title VARCHAR(50) NOT NULL,"
        + "Text VARCHAR(300) NOT NULL,"
        + "Username VARCHAR(10) NOT NULL,"
        + "Rating INTEGER DEFAULT 0 NOT NULL)";

执行命令后,git将不再跟踪这些文件。

答案 2 :(得分:0)

  

...目前我的存储库存储了数十个bin / Debug和Obg / Debug文件夹   有没有办法立即删除它们?

在回答之前,让我们了解git如何处理已提交的内容,以便了解需要做什么。

每次执行git add git时,都要计算文件的SHA-1,并从此处开始跟踪它。

每次执行 git commit 时,内容都会添加到git,会从git < / strong> track 对此文件所做的任何更改

如果您此时决定将此文件添加到 .gitignore ,则无效,因为如前所述,git将继续跟踪内容

<强> How to tell git not to track commited content?

如上所述,一旦内容提交到存储库,git将继续跟踪它。

在此我们需要决定我们希望以哪种方式解决它:

  1. 在git中留下错误的内容
  2. 从git历史记录中删除内容
  3. <强> Leave the wrong content in git

    这是一个简单的案例,我们只需从git中删除曲目内容,因为该文件已被删除且已经在.gitignore中,因此无法从此处跟踪

    # add the content to git ignore
    # delete the content from git (not from file system) and commit it
    git rm --cached <files..>
    
    git commit -m "Removed files..."
    

    <强> Remove the content from git history

    这部分有点棘手且有风险,而且有几个选项 阅读这篇文章: How to move HEAD back to a previous location? (Detached head)

    非常详细介绍了如何修复它的每个选项。