4

我正在设计和构建一个 iOS 应用程序,它受本地 git 存储库的版本控制。到目前为止,我已经将所有内容都置于版本控制之下,包括“Design”之类的大文件夹,里面装满了我的 Photoshop 资产等。我现在已经向 repo 添加了一个远程位置,显然不想将 Design 文件夹提交到远程。

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

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

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

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

如何取消对现有设计文件夹的版本化(git rm实际上是删除文件!)?另外,当我取消版本时,它会自动缩小巨大的 .git 文件夹吗?

非常感谢。

4

1 回答 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

于 2012-11-28T16:12:39.160 回答