Restic: рдорд┐рд╢реНрд░рдг рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ рдмреИрдХрдЕрдк рдФрд░ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрдЯрд░реНрди рд╢рд╛рдорд┐рд▓ рдФрд░ рдмрд╣рд┐рд╖реНрдХреГрдд рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 18 рдЬреБрд▓ре░ 2015  ┬╖  17рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: restic/restic

рдпрд╣ #226 рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд╡рд░реНрддреА рд╕рдорд╕реНрдпрд╛ рд╣реИред рдЕрдм рддрдХ рдХреЗрд╡рд▓ рдмреИрдХрдЕрдк рдФрд░ рдкреБрдирд░реНрд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд▓рд┐рдП рдмрд╣рд┐рд╖реНрдХреГрдд рдкреИрдЯрд░реНрди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред

рдРрд╕реЗ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬреЛ рдХрд╡рд░ рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ /home/user рдкрд░ рдЕрдкрдиреА рд╣реЛрдо рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдмреИрдХрдЕрдк рд▓реЗрдирд╛ рдЪрд╛рд╣реЗрдЧрд╛, рд╕реА рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ work рд╕реЗ рдХреБрдЫ рднреА рдЫреЛрдбрд╝рдХрд░ред

рдХреНрдпрд╛ рдРрд╕реЗ рдХреЛрдИ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧ рд╣реИрдВ рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВрдиреЗ рдирд╣реАрдВ рд╕реЛрдЪрд╛ рд╣реИ?

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди/рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕: рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ --include рдФрд░ --exclude рдкреИрдЯрд░реНрди рджреЛрдиреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ, рдЬреЛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕реВрдЪреА рднрд░рддреЗ рд╣реИрдВ (рдЖрджреЗрд╢ рдпрд╣рд╛рдВ рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ)ред рдкреНрд░рддреНрдпреЗрдХ рдбреАрдЖрдИрдЖрд░/рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП, рд╕реВрдЪреА рдореЗрдВ рд╕рднреА рдкреИрдЯрд░реНрди рдЬрд╛рдВрдЪреЗрдВред рдЕрдВрддрд┐рдо рдорд┐рд▓рд╛рди рдкреИрдЯрд░реНрди рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдИ (рдмрд╣рд┐рд╖реНрдХреГрдд рдпрд╛ рд╢рд╛рдорд┐рд▓) рдЬреАрдд рдЬрд╛рддреА рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреНрд░рд┐рдпрд╛ (рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рднреА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬрдм рди рддреЛ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ рдФрд░ рди рд╣реА рдкреИрдЯрд░реНрди рдХреЛ рдмрд╛рд╣рд░ рдХрд░реЗрдВ) "рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ" рд╣реИред

рдЗрд╕рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдХреЛрдиреЗ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИ: рдХреНрдпрд╛ рд░реЗрд╕реНрдЯрд┐рдХ рдХреЛ /home/user/work рдЪрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдпрджрд┐ рдпрд╣ рдПрдХ рд╡рд╛рдВрдЫрдиреАрдп рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ, рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдпрд╣ рд╕рдВрдХреЗрдд рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреИрдЯрд░реНрди рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдмрд╣рд┐рд╖реНрдХреГрдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рднреА рдЪрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП restic backup --exclude /home/user/work --include /home/user/work/**/*c. /home/user ред

рдПрдХ рдмреЗрд╣рддрд░ рдпреВрдЬрд░ рдЗрдВрдЯрд░рдлреЗрд╕ ( --pattern-file рдпрд╛ рдРрд╕рд╛ рдХреБрдЫ) рд╕реЗ рдкреИрдЯрд░реНрди рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, # рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╕рднреА рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рд╣реИрдВ, рдЦрд╛рд▓реА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдирдЬрд╝рд░рдЕрдВрджрд╛рдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдиреНрдп рд╕рднреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ + (рд╢рд╛рдорд┐рд▓) рдпрд╛ - (рдмрд╣рд┐рд╖реНрдХреГрдд) рд╕реЗ рд╢реБрд░реВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЪрд░рд┐рддреНрд░ рдФрд░ рдПрдХ рдкреИрдЯрд░реНрдиред рдлрд╝рд┐рд▓реНрдЯрд░ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдКрдкрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

# filter out everything from work, but include c source code files
- /home/user/work
+ /home/user/work/**/*.c

рдПрдХ рдмрд╛рд░ рд╢рд╛рдорд┐рд▓ рдФрд░ рдмрд╣рд┐рд╖реНрдХреГрдд рдкреИрдЯрд░реНрди рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдорд╛рдзрд╛рди рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

backup restore feature enhancement

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдХреНрдпреЛрдВ рди рдХреЗрд╡рд▓ рдорд╛рдирдХ рдЕрдирджреЗрдЦрд╛ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬреЛ .gitignore рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП

# ignore everything
*
# include $HOME/.local
!$HOME/.local

рд╕рднреА 17 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдПрдХ рдФрд░ рд╕рдВрднрд╛рд╡рдирд╛ рдпрд╣ рд╣реЛрдЧреА рдХрд┐ рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ (рдпрд╛ рд╕реНрдЯрдбрд┐рди рд╕реЗ) рд╕реЗ рдмреИрдХрдЕрдк рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдПрдХ рд╕рдЯреАрдХ рд╕реВрдЪреА рдХреЛ рдкрдврд╝рд╛ рдЬрд╛рдПред рддрдм рд▓реЛрдЧ рдЕрдкрдиреА рд╕реВрдЪреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рднреА рдЙрдкрдХрд░рдг рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдвреВрдВрдвреЗрдВ, grep, рдЖрджрд┐) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕ рд╕реВрдЪреА рдХреЛ "рдкрд╛рдЗрдк" рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЙрддреНрддрд░ рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореБрдЭреЗ рдкреВрд░рд╛ рдкрд╛рда рдкрдврд╝рдирд╛ рдЪрд╛рд╣рд┐рдПред рдорд╛рдлрд╝ рдХрд░рдирд╛ред

рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рд╣реИ, рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рддрд░реНрдХреЛрдВ рдХреЗ рдмрдЬрд╛рдп рд╕реНрдЯрдб рд╕реЗ рдмреИрдХрдЕрдк рдХреЗ рд▓рд┐рдП рдлрд╛рдЗрд▓реЛрдВ/рдбреАрдЖрдИрдЖрд░ рдХреА рд╕реВрдЪреА рд▓реЗрдирд╛ред рдХреНрдпрд╛ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореВрд▓реНрдпрд╡рд╛рди рд╣реИ? рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдХреНрдпрд╛ рдЖрдк рдХреЛрдИ рдореБрджреНрджрд╛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ?

рдмрд╕ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд╕реНрдорд╛рд░рдХ: рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдмреИрдХрдЕрдк рдХреЗ рд▓рд┐рдП рдлрд╝рд┐рд▓реНрдЯрд░ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдирдХреЗ рдкрд╛рд╕ рд╣реИред

рдЖрдкрдХреЛ рд╢рд╛рдпрдж рд╕рд┐рд░реНрдл rsync рдХреА рдХреЙрдкреА рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП --exclude/--include/--exclude-from рд╕рд┐рдВрдЯреИрдХреНрд╕, рдЙрдирдХреЗ рдкрд╛рд╕ 20 рд╕рд╛рд▓ рдХрд╛ рдЕрдиреБрднрд╡ рд╣реИ :-)
(рдХрдо рд╕реЗ рдХрдо рдХреГрдкрдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рдЬреЛрдбрд╝реЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ "/foo" рдФрд░ "foo" рд╕рдорд╛рди рд╣реИрдВ рдпрд╛ рдпрджрд┐ "*.c" рд╕рдорд░реНрдерд┐рдд рд╣реИред

рдЖрд╣, рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВрдиреЗ рдореИрдиреБрдЕрд▓ рдореЗрдВ рдЕрдиреБрдкрд▓рдмреНрдз рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдореБрджреНрджрд╛ рдЬреЛрдбрд╝рд╛ рд╣реИ: https://github.com/restic/restic/issues/396

рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ rsync рд╕реЗ рдлрд╝рд┐рд▓реНрдЯрд░ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдмрд┐рд▓реНрдХреБрд▓ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдирд┐рдпрдо рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рд╣рдо рдХреНрдпрд╛ рд▓реЗрдХрд░ рдЖ рд╕рдХрддреЗ рд╣реИрдВред

рдХреЛрдИ рдЕрдкрдбреЗрдЯреНрд╕? рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдЬрд░реВрд░реА рд╡рд┐рдХрд▓реНрдк рд╣реИред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕реНрдЯрдб рд╕реЗ рдмреИрдХрдЕрдк рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рд╕реВрдЪреА рдХреЛ рдкрдврд╝рдирд╛ рднреА рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ:

$ find -name '*.go' | restic backup --files-from -
open -: no such file or directory

рдЬрдмрдХрд┐ рдЗрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

restic backup --exclude '*' --include '*.go'

рдЙрд╣, рд╕реНрдЯрдбреАрди рд╕реЗ рдлрд╛рдЗрд▓реЛрдВ рдХреА рд╕реВрдЪреА рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд░реЗрд╕реНрдЯрд┐рдХ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХреЙрд▓ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

$ find -name '*.go' | restic backup --files-from /dev/stdin

рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ, рддреЛ рдореИрдВ рдПрдХ рдкреАрдЖрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реВрдВрдЧрд╛ рдЬреЛ - рд▓рд┐рдП --files-from рд╕рдВрднрд╛рд▓рдирд╛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред :)

@opennota рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ? рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛ред

рдбреИрд╢ ( - ) рд╕рдорд╕реНрдпрд╛ рдХреЛ #769 рдХреЗ рд░реВрдк рдореЗрдВ рдЯреНрд░реИрдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

@fd0
рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЬреНрдпрд╛рджрд╛ рдирд╣реАрдВред рдореИрдВ рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдХреЗрд╡рд▓ рдХреБрдЫ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдмреИрдХ рдЕрдк рд▓реЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ, рддреЛ рдореИрдВ рдПрдХ рдкреАрдЖрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реВрдВрдЧрд╛ рдЬреЛ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдЬреЛрдбрд╝рддрд╛ рд╣реИ - --files-from рдХреЗ рд▓рд┐рдПред :)

рдореЗрдВ рджреЗрдЦрддрд╛ рд╣реВрдБ рдореЗрдВ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБред

рдЖрдк sed рдФрд░ рдирд╛рдорд┐рдд рдкрд╛рдЗрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

restic --exclude-file <(sed -n 's/^- \(.*\)/\1/p' files.list) --files-from <(sed -n 's/^+ \(.*\)/\1/p' files.list)

- рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдмрд╛рд╣рд░ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ + рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдЕрдЪреНрдЫрд╛ рдореЙрдбрд▓ рд╡рд╣ рд╣реИ рдЬрд┐рд╕реЗ рдмреЛрд░реНрдЧ рдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ --pattern рдФрд░ --patterns-from . рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИ
https://borgbackup.readthedocs.io/en/stable/usage/help.html#borg -help-patterns
рдЗрддрдирд╛ рдЕрд▓рдЧ рд╢реИрд▓реА рдЪрдпрдирдХрд░реНрддрд╛ рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд░реВрдЯ рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдХрд▓реНрдк, рдирд┐рдпрдореЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ, рдирд┐рдпрдореЛрдВ рдХреЛ рдмрд╛рд╣рд░ рдХрд░реЗрдВ, рдФрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдиреЛ-рд░рд┐рдХрд░реНрд╕ рдмрд╣рд┐рд╖реНрдХреГрдд рдирд┐рдпрдо рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

рдХреНрдпреЛрдВ рди рдХреЗрд╡рд▓ рдорд╛рдирдХ рдЕрдирджреЗрдЦрд╛ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬреЛ .gitignore рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП

# ignore everything
*
# include $HOME/.local
!$HOME/.local

--include рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реИ?

рдзреНрд╡рдирд┐ рдЬреИрд╕реЗ --include рдФрд░ --exclude рдХреЛ рдПрдХ рд╕рд╛рде рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рд╡рд░реАрдпрддрд╛ рдХрд╛ рдкрджрд╛рдиреБрдХреНрд░рдо рд╣реЛрдЧрд╛ ...

--files-from рд╕рд╛рде рдлрд╛рдЗрд▓реЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рд▓ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ snapshots рдЙрдкрдХрдорд╛рдВрдб рдлрд╛рдЗрд▓реЛрдВ рдХреА рд╡рд┐рд╢рд╛рд▓ рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ рдФрд░ forget рдЙрдкрдХрдорд╛рдВрдб рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдореЗрд░рд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рдореЗрд░реЗ рдШрд░ рдХрд╛ рдмреИрдХрдЕрдк рд▓реЗ рд░рд╣рд╛ рд╣реИ рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдмрд╣рд┐рд╖реНрдХрд░рдг рдФрд░ рдмрд╣рд┐рд╖реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЗ рд╕рд╛рде рдкрдереЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИред рдкрдереЛрдВ рдХреА рдЖрдзрд╛рд░ рд╕реВрдЪреА рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реМ рдЖрдЗрдЯрдо рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рд╕рдм рдХреБрдЫ $HOME рдЕрдВрддрд░реНрдЧрдд рд╣реИ, рдореИрдВ --exclude=** --include=~/path1 --include=~/path2 --exclude=~/path2/something --exclude=*~ рдЬреИрд╕рд╛ рдХреБрдЫ рдХрд╣рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░реВрдВрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдкрде рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕реЗ рдкреНрд░рддреНрдпреЗрдХ --exclude рдФрд░ --include рдХреЗ рд╕рд╛рде рд╕рд╣реА рдХреНрд░рдо рдореЗрдВ рдорд┐рд▓рд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЕрдВрддрд┐рдо рдорд┐рд▓рд╛рди рдЬреАрддред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @vincentbernat рдХрд╛ рдкреАрдЖрд░ рдЗрд╕ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╛ рдПрдХ рдкреНрд░рднрд╛рд╡реА рд╕рдорд╛рдзрд╛рди рд╣реИред

_рд╕рд╛рд░рд╛рдВрд╢: gitignore-style рдирдХрд╛рд░рд╛рддреНрдордХ рдкреИрдЯрд░реНрди рдХреЛ рдмреИрдХрдЕрдк рдФрд░ рдкреБрдирд░реНрд╕реНрдерд╛рдкрдирд╛ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣рд┐рд╖реНрдХреГрдд рдирд┐рдпрдореЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВред_

рдореИрдВ рдЗрд╕реЗ рдХрдИ рд╣рдлреНрддреЛрдВ рд╕реЗ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдпрд╣ рдореБрдЭреЗ рдореЗрд░реА рд╕реНрдиреИрдкрд╢реЙрдЯ рд╕реВрдЪреА рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИ, рдЬреЛ рдкрд╣рд▓реЗ рдХрд╛рдлреА рд╡рд░реНрдмреЛрдЬрд╝ рдерд╛:

b951f6a2  2019-06-15 11:30:18  elvandar    manual      /Users/daniel/Desktop
                                                       /Users/daniel/Documents
                                                       <lots more...>

рдкреНрд░рддрд┐:

d0c0bed1  2019-06-18 08:20:57  elvandar                /Users/daniel

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВрдиреЗ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд░рдВрддрд░ рдмреИрдХрдЕрдк рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдкреНрд░рднрд╛рд╡реА (рд╕рд╣реА рдирд╣реАрдВ рдмрд▓реНрдХрд┐ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛) рд╕рдорд╛рдзрд╛рди рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИ (рдЬрд▓реНрдж рд╣реА рд╡рд┐рд╡рд░рдг рд╕рд╛рдЭрд╛ рдХрд░реВрдВрдЧрд╛)ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

axllent picture axllent  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

fd0 picture fd0  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

McKael picture McKael  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

shibumi picture shibumi  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

rakor picture rakor  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ