在初始化之后忽略目录,子目录和文件

时间:2011-09-15 06:47:42

标签: ruby-on-rails git file version-control directory

我正在使用Ruby on Rails,Capistrano gem和git。很久以前我初始化了git,在.gitignore文件中我说了以下内容:

.bundle
db/*.sqlite3
log/*.log
tmp/

有一天,我在RoR应用程序的/public目录中创建了一个子目录:/public/users/...。现在在后一个目录中,我有以下文件系统结构:

/public/users/001/file1.png
/public/users/001/file2.png
/public/users/001/file3.png
...
/public/users/002/file1.png
/public/users/002/file2.png
/public/users/002/file3.png
...
...

此时git正在跟踪/public目录中的所有文件,包括/public/users/内的所有目录和文件。因此,当我使用Capistrano进行部署时,所有这些都将在远程计算机上进行更新。

我想要做的是不再跟踪public/users目录,子目录和文件(在我的本地计算机上),以便在远程计算机上不会更新。也就是说,我希望当我使用Capistrano进行部署时,所有与public/users(在远程计算机上)相关的内容都不会受到影响。

我该怎么做?

P.S。:我读了很多其他的问题和答案(例如:12,......)但是它们似乎都不适合我。


我几乎可以肯定我必须在.gitignore文件中添加以下文本行:

# Ignoring "public/users/" directories, sub-directories and files
public/users/

然后(如果上面的代码有效)我应该做什么?

1 个答案:

答案 0 :(得分:1)

尝试将所有与用户相关的文件放入一个文件夹,比如系统 你可以把public/system/*.*放在git中忽略.. 那你的目标结构将是:

  public
      ->404.html
      ->js.../..,..,..
      ->css ../..,..,..
      ->system
         ->users
             ->1/something
             ->2/something 
         ->some-other-user-related-info

为什么还需要将开发相关文件放入git然后再放入服务器?没有意义..所以不要这样做..它将无缘无故地增加你的回购尺寸。

由于您使用的是capistrano,因此您的服务器目录结构将如下所示:

APP
   ->Current
   ->releases
   ->shared

您的公共/系统文件夹将继续指向共享/系统

案例1:用户/未提交的文件 将所有与用户相关的文件放在.gitignore

案例2:如果提交了文件 执行git delete然后提交 然后将其添加到.git ignore