Git中取消版本控制

4
我是一个iOS应用程序的设计师和开发者,我的应用程序使用本地git仓库进行版本控制。目前为止,我已经将所有内容包括“设计”文件夹下的Photoshop素材等大型文件夹都纳入了版本控制。现在,我已经将远程位置添加到仓库中,并且不想将“设计”文件夹提交到远程仓库中。
我创建了一个.gitignore文件,其内容如下:
# File Extensions #
###################
*.psd

# Folders #
###########
/Design/*

这应该排除那个文件夹和任何 Photoshop 文档,对吗?

我该如何取消版本控制现有的设计文件夹(git rm 实际上会删除文件!)?而且,当我取消版本控制后,它会自动缩小巨大的 .git 文件夹吗?

非常感谢。

1个回答

12

使用git命令可以使用git rm --cached design/,这将保留文件。

要从整个历史记录中删除它,你可以尝试类似于以下的操作:

$ git filter-branch --index-filter 'git rm --cached --ignore-unmatch design/' \
  --prune-empty --tag-name-filter cat -- --all

$ rm -rf .git/refs/original/

$ git reflog expire --expire=now --all

$ git gc --prune=now

$ git gc --aggressive --prune=now

参考: https://help.github.com/articles/remove-sensitive-data


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接