嗨推送到存储库的几个解决方案。不幸的是,我没有设置.gitignore。 目前,我的存储库存储了数十个bin / Debug和Obg / Debug文件夹。 有没有办法立即删除它们?
答案 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将继续跟踪它。
在此我们需要决定我们希望以哪种方式解决它:
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)
非常详细介绍了如何修复它的每个选项。