Git上的Unversion

时间:2012-11-28 16:02:16

标签: git version-control commit bitbucket

我正在设计和构建一个iOS应用程序,它使用本地git存储库进行版本控制。到目前为止,我已经在版本控制下拥有了所有,包括大型文件夹,例如“设计”,其中充满了我的Photoshop资源等等。我现在已经为repo添加了一个远程位置,显然不希望将Design文件夹提交到远程。

我使用以下内容制作了.gitignore文件:

# File Extensions #
###################
*.psd

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

应该排除该文件夹和任何Photoshop文档吗?

如何解开现有设计文件夹(git rm实际删除文件!)?另外,当我取消它时,它会自动缩小庞大的.git文件夹吗?

非常感谢。

1 个答案:

答案 0 :(得分: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