Search

7) .gitignore

ꡬ뢄
2일차

[1] .gitignore

νŠΉμ • 파일 ν˜Ήμ€ 폴더에 λŒ€ν•΄ Git이 버전 관리λ₯Ό ν•˜μ§€ λͺ»ν•˜λ„둝 μ§€μ •ν•˜λŠ” 것

(1) .gitignore에 μž‘μ„±ν•˜λŠ” λͺ©λ‘

β€’
λ―Όκ°ν•œ 개인 정보가 λ‹΄κΈ΄ 파일 (μ „ν™”λ²ˆν˜Έ, κ³„μ’Œλ²ˆν˜Έ, 각쒅 λΉ„λ°€λ²ˆν˜Έ, API KEY λ“±)
β€’
OS(운영체제)μ—μ„œ ν™œμš©λ˜λŠ” 파일
β€’
IDE(톡합 개발 ν™˜κ²½ - pycharm) ν˜Ήμ€ Text editor(vscode) λ“±μ—μ„œ ν™œμš©λ˜λŠ” 파일
β—¦
예) pycharm -> .idea/
β€’
개발 μ–Έμ–΄(python) ν˜Ήμ€ ν”„λ ˆμž„μ›Œν¬(django)μ—μ„œ μ‚¬μš©λ˜λŠ” 파일
β—¦
가상 ν™˜κ²½ :Β venv/
β—¦
__pycache__/

(2) .gitignore μž‘μ„± μ‹œ 주의 사항

β€’
λ°˜λ“œμ‹œ 이름을 .gitignore둜 μž‘μ„±ν•©λ‹ˆλ‹€. μ•žμ˜ 점(.)은 μˆ¨κΉ€ νŒŒμΌμ΄λΌλŠ” λœ»μž…λ‹ˆλ‹€.
β€’
.gitignore νŒŒμΌμ€ .git 폴더와 λ™μΌν•œ μœ„μΉ˜μ— μƒμ„±ν•©λ‹ˆλ‹€.
β€’
μ œμ™Έ ν•˜κ³  싢은 νŒŒμΌμ€ λ°˜λ“œμ‹œ git add 전에 .gitignore에 μž‘μ„±ν•©λ‹ˆλ‹€.
μ™œ git add 전에 .gitignore에 μž‘μ„±ν•΄μ•Ό ν• κΉŒμš”? git add a.txt 라고 μž‘μ„±ν•˜λ©΄, 이제 Git은 a.txtλ₯Ό 버전 κ΄€λ¦¬μ˜ λŒ€μƒμœΌλ‘œ μ—¬κΉλ‹ˆλ‹€. ν•œ 번 버전 κ΄€λ¦¬μ˜ λŒ€μƒμ΄ 된 a.txtλŠ” 이후에 .gitignore에 μž‘μ„±ν•˜λ”λΌλ„ λ¬΄μ‹œλ˜μ§€ μ•Šκ³  계속 버전 κ΄€λ¦¬μ˜ λŒ€μƒμœΌλ‘œ μΈμ‹λ©λ‹ˆλ‹€. λ”°λΌμ„œ μ œμ™Έ ν•˜κ³  싢은 νŒŒμΌμ€ λ°˜λ“œμ‹œ git add 전에 .gitignore에 μž‘μ„±ν•΄μ•Ό ν•©λ‹ˆλ‹€!

(3) .gitignore μ‰½κ²Œ μž‘μ„±ν•˜κΈ°

.gitignore의 λ‚΄μš©μ„ μ‰½κ²Œ μž‘μ„±ν•  수 μžˆλ„λ‘ λ„μ™€μ£ΌλŠ” 두 개의 μ‚¬μ΄νŠΈλ₯Ό μ†Œκ°œν•©λ‹ˆλ‹€. μžμ‹ μ˜ 개발 ν™˜κ²½μ— λ§žλŠ” 것을 μ°Ύμ•„μ„œ 전체 볡사, λΆ™μ—¬λ„£κΈ°λ₯Ό ν•˜λ©΄ λ©λ‹ˆλ‹€.
1.
μ›Ήμ‚¬μ΄νŠΈ
2.
gitignore μ €μž₯μ†Œ
gitignore
github
3.
Python에 λŒ€ν•œ .gitignore μ˜ˆμ‹œ
μ—μ„œ κ°€μ Έμ˜΄

[2] 심화

.gitignore에 λŒ€ν•΄ 쑰금 더 μ•Œμ•„λ΄…λ‹ˆλ‹€.

(1) .gitignore νŒ¨ν„΄ κ·œμΉ™

1.
아무것도 μ—†λŠ” λΌμΈμ΄λ‚˜, #둜 μ‹œμž‘ν•˜λŠ” 라인은 λ¬΄μ‹œν•©λ‹ˆλ‹€.
2.
μŠ¬λž˜μ‹œ(/)둜 μ‹œμž‘ν•˜λ©΄ ν•˜μœ„ 디렉터리에 μž¬κ·€μ μœΌλ‘œ μ μš©λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
3.
λ””λ ‰ν„°λ¦¬λŠ” μŠ¬λž˜μ‹œ(/)λ₯Ό 끝에 μ‚¬μš©ν•˜λŠ” κ²ƒμœΌλ‘œ ν‘œν˜„ν•©λ‹ˆλ‹€.
4.
λŠλ‚Œν‘œ(!)둜 μ‹œμž‘ν•˜λŠ” νŒ¨ν„΄μ˜ νŒŒμΌμ€ ignore(λ¬΄μ‹œ)ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
5.
ν‘œμ€€ Glob νŒ¨ν„΄μ„ μ‚¬μš©ν•©λ‹ˆλ‹€.
β€’
*(asterisk)λŠ” λ¬Έμžκ°€ ν•˜λ‚˜λ„ μ—†κ±°λ‚˜ ν•˜λ‚˜ 이상을 μ˜λ―Έν•©λ‹ˆλ‹€.
β€’
[abc]λŠ” μ€‘κ΄„ν˜Έ μ•ˆμ— μžˆλŠ” 문자 쀑 ν•˜λ‚˜λ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€.
β€’
λ¬ΌμŒν‘œ(?)λŠ” 문자 ν•˜λ‚˜λ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€.
β€’
[0-9]처럼 μ€‘κ΄„ν˜Έ μ•ˆμ— ν•˜μ΄ν”ˆ(-)이 μžˆλŠ” 경우 0μ—μ„œ 9μ‚¬μ΄μ˜ 문자 쀑 ν•˜λ‚˜λ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€.
β€’
**(2개의 asterisk)λŠ” 디렉터리 λ‚΄λΆ€μ˜ λ””λ ‰ν„°λ¦¬κΉŒμ§€ 지정할 수 μžˆμŠ΅λ‹ˆλ‹€. (a/**/z라고 μž‘μ„±ν•˜λ©΄ a/z, a/b/z, a/b/c/z κΉŒμ§€ λͺ¨λ‘ 영ν–₯을 λΌμΉ©λ‹ˆλ‹€.)

(2) νŒ¨ν„΄ μ˜ˆμ‹œ

# .gitignore # ν™•μž₯μžκ°€ txt인 파일 λ¬΄μ‹œ *.txt # ν˜„μž¬ ν™•μž₯μžκ°€ txt인 파일이 λ¬΄μ‹œλ˜μ§€λ§Œ, λŠλ‚Œν‘œλ₯Ό μ‚¬μš©ν•˜μ—¬ test.txtλŠ” λ¬΄μ‹œν•˜μ§€ μ•ŠμŒ !test.txt # ν˜„μž¬ 디렉터리에 μžˆλŠ” TODO νŒŒμΌμ€ λ¬΄μ‹œν•˜κ³ , folder/TODO 처럼 ν•˜μœ„ 디렉터리에 μžˆλŠ” νŒŒμΌμ€ λ¬΄μ‹œν•˜μ§€ μ•ŠμŒ /TODO # build/ 디렉터리에 μžˆλŠ” λͺ¨λ“  νŒŒμΌμ€ λ¬΄μ‹œ build/ # folder/notes.txt νŒŒμΌμ€ λ¬΄μ‹œν•˜κ³  folder/child/arch.txt νŒŒμΌμ€ λ¬΄μ‹œν•˜μ§€ μ•ŠμŒ folder/*.txt # folder 디렉터리 μ•„λž˜μ˜ λͺ¨λ“  .pdf νŒŒμΌμ„ λ¬΄μ‹œ folder/**/*.pdf
Shell
볡사