-
Notifications
You must be signed in to change notification settings - Fork 483
/
.gitattributes
70 lines (64 loc) · 3.35 KB
/
.gitattributes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# Git LFS inclusion / exclusion is controlled by this file. Our approach is to:
# INCLUDE dirs in Git LFS broadly, and then EXCLUDE text file-types narrowly.
#
# Why include in LFS broadly? Once a large binary file is comitted without lfs,
# it is VERY hard to remove it from the git history as it requires a history
# rewrite. This cannot be done without major disruption to all devs. Thus,
# once merged to `staging`, that NNN MB file that missed LFS makes our git repo
# that much bigger forever.
#
# In contrast, if a text file (= a file that you want to be able to diff)
# is accidentally included in LFS, adding it back to git is easy,
# see: "HOW TO EXCLUDE A FILE/FILES THATS IN AN LFS DIR" below.
# INCLUDE these "large static asset" and localisation dirs in Git LFS:
apps/i18n/** filter=lfs diff=lfs merge=lfs -text
apps/static/** filter=lfs diff=lfs merge=lfs -text
dashboard/app/assets/** filter=lfs diff=lfs merge=lfs -text
dashboard/config/locales/** filter=lfs diff=lfs merge=lfs -text
dashboard/public/** filter=lfs diff=lfs merge=lfs -text
i18n/locales/** filter=lfs diff=lfs merge=lfs -text
pegasus/cache/i18n/** filter=lfs diff=lfs merge=lfs -text
pegasus/sites.v3/** filter=lfs diff=lfs merge=lfs -text
pegasus/sites/** filter=lfs diff=lfs merge=lfs -text
shared/images/** filter=lfs diff=lfs merge=lfs -text
# HOW TO EXCLUDE A FILE/FILES FROM GIT LFS:
#
# 1. Add a new exclusion pattern in the immediately following section
# 2. Run `git add --renormalize .` from the root of the repo
# 3. All files matching the pattern should show up new and uncommitted
# 4. Commit your .gitattributes changes and the new files.
#
# 🙏 be thoughtful when adding new files/patterns: once the files
# are in our git history, they take up space forever.
# EXCLUDE these files from our Git LFS dirs:
apps/i18n/**/en_us.json !text !filter !merge !diff
dashboard/app/assets/javascripts/** !text !filter !merge !diff
dashboard/app/assets/stylesheets/** !text !filter !merge !diff
dashboard/config/locales/**/*en.yml !text !filter !merge !diff
i18n/locales/source/** !text !filter !merge !diff
pegasus/cache/i18n/en-US.json !text !filter !merge !diff
pegasus/sites.v3/hourofcode.com/i18n/en.yml !text !filter !merge !diff
pegasus/sites*/**/*.collate !text !filter !merge !diff
pegasus/sites*/**/*.erb !text !filter !merge !diff
pegasus/sites*/**/*.fetch !text !filter !merge !diff
pegasus/sites*/**/*.haml !text !filter !merge !diff
pegasus/sites*/**/*.json !text !filter !merge !diff
pegasus/sites*/**/*.md !text !filter !merge !diff
pegasus/sites*/**/*.moved !text !filter !merge !diff
pegasus/sites*/**/*.partial !text !filter !merge !diff
pegasus/sites*/**/*.redirect !text !filter !merge !diff
pegasus/sites*/**/*.scss !text !filter !merge !diff
# INCLUDE these binary file types in Git LFS no matter where they occur:
*.jpeg filter=lfs diff=lfs merge=lfs -text
*.jpg filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
# Small list of very common text file types to EXCLUDE from Git LFS:
*.css !text !filter !merge !diff
*.js !text !filter !merge !diff
*.html !text !filter !merge !diff
# INCLUDE these specific files in Git LFS, no matter what:
pegasus/sites.v3/code.org/public/schools.json filter=lfs diff=lfs merge=lfs -text