ํ์คํ ์น๐ ๊ฐ๋ฐ์ ์ง๋ง์ ๐ง๐ฝโ๐ป
โ ์ธ๊ณต์ง๋ฅ ๊ด์ฌ ๐ค
Categories
-
โฃ
โถ COMPUTER_SCIENCE
๐: 7 -
โฃ
โถ WEB
๐: 3 -
โฃ
โถ ETC
๐: 3-
โ
โฃ
ETCS
๐: 10 -
โ
โฃ
SUBBRAIN ๊ฐ๋ฐ๊ธฐ
๐: 5 -
โ
โ
YOS ๊ฐ๋ฐ๊ธฐ
๐: 1
-
โ
โฃ
-
โ
โถ AI
๐: 9-
โฃ
AITOOLS
๐: 3 -
โฃ
CV
๐: 2 -
โฃ
DEEP_LEARNING
๐: 1 -
โฃ
DATA_VIS
๐: 2 -
โฃ
GRAPH
๐: 1 -
โฃ
LIGHTWEIGHT
๐: 1 -
โฃ
MATH
๐: 1 -
โฃ
NLP
๐: 3 -
โ
STRUCTURED_DATA
๐: 2
-
โฃ
gitignore ์์ฑ๋ฒ
.gitignore ์์ฑ๋ฒ
์๋์ ์ผ๋ก Commit ๋์ง ์๋๋ก ๋ฌด์๋์ด์ผํ ํ์ผ์ ์ ํด์ฃผ๋ ๊ฒ -(https://git-scm.com/docs/gitignore)
git ํด๋(git init์ ํตํด .git ์จ๊น ํด๋๊ฐ ์์ฑ๋ ๋๋ ํ ๋ฆฌ) ๋ด๋ถ์ โ.gitignoreโ๋ผ๋ ์ด๋ฆ์ ํ์ผ์ ์์ฑํ ๋ค, ๋ณด์์, ํ๋ก์ ํธ ๊ด๋ จ์, ํ์ผ ํฌ๊ธฐ์ ์๊ฒฉ ๋ ํฌ์งํ ๋ฆฌ์ ์ฌ๋ฆฌ๊ณ ์ถ์ง ์์ ํ์ผ์ด๋ ํด๋๋ฅผ add ๋์์์ ์ ์ธํ๋๋ฐ ์ฌ์ฉํ ์ ์๋ค.
gitignore.io(https://www.toptal.com/developers/gitignore)๋ฅผ ํตํด ์์ฝ๊ฒ ์์ ์ ๊ธฐ์ ์คํ์ ๊ด๋ จ๋ gitignore ํ์ผ์ ๋ง๋ค ์ ์์ง๋ง, ๊ฐ์ธ์ด ์์ฑํ ๋ฏผ๊ฐํ ํ์ผ์ ์ ์ธํ๊ธฐ ์ํด ์ ํํ ์ฌ์ฉ๋ฒ๋ฅผ ์์์ผํ ํ์๊ฐ ์๋ค.
์์ธํ ๋ด์ฉ์
๐ https://git-scm.com/docs/gitignore
์ฃผ์ํ ์ ์ ์ด๋ฏธ ์๊ฒฉ ๋ ํฌ์งํ ๋ฆฌ์ ์ฌ๋ผ๊ฐ ํ์ผ์ ๋ค๋ฆ๊ฒ gitignore์ ํจํด์ ์ถ๊ฐํ๋คํด๋ ์ํฅ์ ๋ฐ์ง ์์ผ๋ฉฐ, ์ด๋ฅผ ์ํด ๋ฐ๋ก ์ฒ๋ฆฌํด์ค์ผํ๋ค. โ์ํ์ง ์์ Git ํ์ผ ๊ธฐ๋ก ์ง์ฐ๊ธฐโ ์ฐธ์กฐ ๋ฐ๋
gitignore
gitignore ํ์ผ ์์
์๋์ ๊ฐ์ ๋ฐฉ์์ผ๋ก .gitignore ํ์ผ ๋ด๋ถ์ ํ์ผ๋ช ์ ๋ํ ํจํด์ ๊ธฐ์ฌํ์ฌ ํ์ผ์ด ๊ธฐ๋ก๋์ง ์๋๋ก ํ ์ ์๋ค. ์ด๋, ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
...
# Created by https://www.toptal.com/developers/gitignore/api/visualstudiocode,windows,python,react
# Edit at https://www.toptal.com/developers/gitignore?templates=visualstudiocode,windows,python,react
### react ###
.DS_*
logs
**/*.backup.*
**/*.back.*
node_modules
bower_components
*.sublime*
psd
thumb
sketch
### VisualStudioCode ###
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
*.code-workspace
# Local History for Visual Studio Code
.history/
...
gitignore ํ์ผ์ ๋ค๋ฅธ ํ์ฉ ๋ฐฉ๋ฒ๋ค
Git์ ์ฌ๋ฟ์ gitignore ํ์ผ๊ณผ ํ์ผ ๋ด๋ถ ๋ผ์ธ์ ์ฝ๊ณ ๋ฌด์ํ ํ์ผ์ ์ธ์งํ๋๋ฐ, ๋ค์๊ณผ ๊ฐ์ด ๋ณต์กํ ์ฐ์ ์์์ ๊ฐ๋ ์ฑ์ ์ํด ๋ณดํต ํ๋์ .gitignore ํ์ผ์ ํ๋ก์ ํธ ์ต์๋จ ํด๋์ ์ ์งํ๋ค.
- gitignore ํ์ผ์ด ์ฌ๋ฌ ํด๋์ ์กด์ฌํ ๊ฒฝ์ฐ, ํ์ฌ ํด๋์ gitignoreํ์ผ์ ์ต์ฐ์ ์ผ๋ก, ์์ ํด๋์ผ ์๋ก ๋ฎ์ ์ฐ์ ์์๋ก gitignore ํ์ผ ์ค์ ์ ๋ฎ์ด์์ด๋ค.
- ์ด์ธ์๋ .git ํด๋ ๋ด๋ถ์๋ git์ ์ํด ์์ฑ๋๋ ํ์ผ๋ค์ ๋ฌด์ํ๊ธฐ ์ํ ๊ธฐ๋ณธ ์์ฑ gitignore๊ฐ ์กด์ฌํจ
์ด๋ฌํ .gitignore ํ์ผ์ push ์์ ์๊ฒฉ ๋ ํฌ์งํ ๋ฆฌ์ ๊ฐ์ด ์ฌ๋ผ๊ฐ๋ฏ๋ก, ๋ง์ฝ ๋ง์ ์ฌ๋์ด ์ฐธ์ฌํ๊ณ ์๋ ํ๋ก์ ํธ ์ค์, ๋์ ๋ก์ปฌ ๋ ํฌ์งํ ๋ฆฌ์์๋ง ์ ์ธํ๊ณ ๋ค๋ฅธ ์ฌ๋๋ค์ ์ ์ธํ ํ์ ์๋ ํ์ผ์ ๊ฒฝ์ฐ๋ $GIT_DIR/info/exclude ํ์ผ์ ๊ธฐ์ฌํ๋ฉด ๋๋ค.
ํ๋ก์ ํธ๋, ๋ ํฌ์งํ ๋ฆฌ์ ๊ด๊ณ์์ด GIT์ ์ฌ์ฉํ๋ ์ด๋ ํ ์ํฉ์์๋ ๋ฌด์กฐ๊ฑด ์ ์ธํ๊ณ ์ถ์ ๋์ ํ์ผ์ ํจํด(์ ์ญ ๋ฌด์, Global ignore)์ $XDG_CONFIG_HOME/git/ignore ๋๋ $HOME/.config/git/ignore ํ์ผ์ ๊ธฐ์ฌํ๋ฉด ๋๋ค.
- ignore ํ์ผ์ ๊ฒฝ๋ก๋ ์ด๋ฆ์ ๋ฐ๊พธ๊ณ ์ถ์ผ๋ฉด git config โglobal core.excludesfile ~/{์ํ๋ ๊ฒฝ๋ก}, ๋๋ ์ง์ ๊ฒฝ๋ก ~/.gitconfig/core.excludesFile์ ๋ค์ด๊ฐ์ ๊ฒฝ๋ก๋ฅผ ๋ฐ๊ฟ์ค ์ ์๋ค.
git check-ignore [ํ์ผ, ํด๋๋ช ]์ ํตํด ํด๋น ํ์ผ, ํด๋๊ฐ ์ ์ธ๋์ด์๋ ์ง ํ์ธํ ์ ์๋ค.
- ๋ง์ฝ ๋์์ด ์ ์ธ๋์ด์๋ค๋ฉด ํด๋น ํด๋๋ช ์ด ๋ํ๋๋ค.
- ๋์์ด ํฌํจ๋์ด ์๋ค๋ฉด ์๋ฌด๊ฒ๋ ๊ฒฐ๊ณผ์ฐฝ์ ๋ํ๋์ง ์๋๋ค.
ํจํด ํฌ๋งท๊ณผ ์์
git์ด ์ด์ฉํ๋ ํจํด์ glob ํจํด์์ brace expression์ ์ ์ธํ ๊ฒ๊ณผ, ์ ๊ทํํ์์ [a..z] expression์ ์ถ๊ฐํ ๊ฒ์ ํฉ์น ๋ฌธ๋ฒ์ด๋ฉฐ, ์ฌ๊ธฐ์๋ ํจํด์ ๋ฐ๋ฅธ git์ .gitignore ํ์ผ ์์๋ฅผ ์ค์ฌ์ผ๋ก ์ด์ผ๊ธฐํ ๊ฒ์ด๋ค.
์ฌ๊ธฐ์ โ์ ์ธโ๋ ์๊ฒฉ ๋ ํฌ์งํ ๋ฆฌ์ ์ฌ๋ผ๊ฐ์ง ์์์ ์๋ฏธํ๋ฉฐ, โํฌํจโ์ ์ฌ๋ผ๊ฐ์ ์๋ฏธํ๋ค.
- ์๋ฅผ ๋ค์ด โํ์ผ a๋ ์ ์ธ๋๋ฉฐ, ํ์ผ b๋ ํฌํจ์ด๋คโ ๊ฐ์ด, b๊ฐ git์ ์ํด commit ๋๋ค๋ ์๋ฏธ์ธ์ง, ์๋๋ฉด a์ฒ๋ผ ์ ์ธ๋๋ค๋ ์๋ฏธ์ธ์ง ํท๊ฐ๋ฆฌ๋ ํํ์ ์ต๋ํ ์์ ํ์ผ๋ฉฐ, ๋ง์ฝ ์กด์ฌํ๋ค๋ฉด, ์ด๋ b๋ a์ ๋ฌ๋ฆฌ ์ ์ธ๋์ง ์๊ณ ์ฌ๋ผ๊ฐ๋ค๋ ์๋ฏธ์ด๋ค.
# using # to comment. if you need to use # using \# instead.
# using blank line as a separator
๋น ๊ณต๊ฐ์ ๊ตฌ๋ถ์๋ก ์ฌ์ฉ๋๋ฉฐ, #์ผ๋ก ์ฃผ์์ ๋จ๊ธธ ์ ์๋ค.
mustinclude.txt
# mustinclude.txt ์ ์ธ ํจํด
!mustinclude.txt
# ์์์ ์ ์ธ ํจํด์ ๋ฌด์ํ๊ณ ๋ฌด์กฐ๊ฑด ํฌํจ์ํด
!/mustIncludeFolder/
# mustIncludeFolder๋ฅผ ๋ฌด์กฐ๊ฑด ํฌํจ์ํด
\!important!.txt
# ํ์ผ๋ช
์ค๊ฐ์ ์์นํ !๋ \๋ฅผ ์ ๋์ฌ๋ก ๋ฃ์ ํ์์๋ค.
/specificDir/
โ\โ๊ฐ ์์ ์์ง ์์ ๊ณต๋ฐฑ ๋ฌธ์๋ ๋ฌด์๋๋ค.
โ!โ๊ฐ ์ ๋์ด๋ก ์๋ ํจํด์ ์ด์ ์ ์ ์ธ ํจํด์ด ์กด์ฌํด๋ ๋ฐ๋์ ํฌํจ๋๋ค. ํ์ง๋ง, ํด๋น ํ์ผ์ ์์ ๊ฒฝ๋ก๊ฐ ํต์งธ๋ก ์ ์ธ๋ ๊ฒฝ์ฐ๋, ๋ ๋ค์ ์๋์ ๋ค์ ์ ์ธ๋ ๊ฒฝ์ฐ์๋ ๋ค์ ํฌํจ๋ ์ ์๋ค.
โ!โ๋ฅผ ํ์ผ๋ช ์ ์ต์ ๋ ๋ฑ์ผ๋ก ์ฌ์ฉํ๊ณ ์ถ์ ๋๋ โ\!โ๋ฅผ ์ด์ฉํ์.
/FolderInSameDir/ChildDir/excludedfile.txt
# .gitignore ํ์ผ๊ณผ ๊ฐ์ ํด๋์ ์์นํ FolderInSameDir ํด๋ ๋ด์ ChildDir ํด๋ ๋ด์ excludedfile.txt ์ ์ธ
# ๋ค๋ฅธ ํด๋ ๋ด๋ถ์ ์๋ otherFolder/FolderInSameDir/ChildDir/excludedfile.txt์ ๊ทธ๋๋ก ํฌํจ๋จ
FolderInSameDir/ChildDir/excludedfile2.txt
# ์์ ๊ฐ์ ๊ฒฝ๋ก์ excludedfile2.txt ์ ์ธ, ์ฆ ๋งจ ์์ "/"์ ์์ด๋ ๋จ
/fileInHere.txt
# .gitignore ํ์ผ๊ณผ ๊ฐ์ ํด๋์ ์กด์ฌํ๋ fileInHere.txt ์ ์ธ
# ๋ค๋ฅธ ํด๋ ๋ด๋ถ์ ์๋ /otherFolder/fileInHere.txt์ ๊ทธ๋๋ก ํฌํจ๋จ
"/"๋ฅผ ํ์ผ ๊ฒฝ๋ก ๊ตฌ๋ถ์๋ก ์ฌ์ฉํ๋ฉฐ, ํจํด์ ์ฒ์์ด๋ ์ค๊ฐ์ ์กด์ฌํ ์์๋, .gitignore ํ์ผ์์์ ์๋์ ํ์ผ ๊ฒฝ๋ก์ ์กด์ฌํ๋ ํ์ผ์ ์๋ฏธํ๋ฉฐ, ์กด์ฌํ์ง ์์ ์์๋ .gitignore ํ์ผ๊ณผ ๊ฐ์ ํด๋ ๋ด์ ํ์ผ์ ์ ์ธ์ํจ๋ค.
folderOrFile
# folderOrFile์ด๋ผ๋ ์ด๋ฆ์ ํด๋๋ง ์ ๋ถ ์ ์ธ
onlyTxt.txt
# onlyTxt.txt์ด๋ผ๋ ์ด๋ฆ์ ํ์ผ๋ง ์ ๋ถ ์ ์ธ, onlyTxt.exe, onlyTxt.md ๋ฑ, ๋ค๋ฅธ ํ์ฅ์๋ ๊ทธ๋๋ก ํฌํจ๋จ.
onlyFolder/
# onlyFolder๋ผ๋ ์ด๋ฆ์ ํด๋๋ง ์ ์ธ
onlyFile.*
# ์๋์์ ๋ฐฐ์ธ *๋ฅผ ์ด์ฉํ onlyFile์ด๋ผ๋ ์ด๋ฆ์ ๊ฐ์ง ํ์ผ๋ง ์ ๋ถ ์ ์ธ ํ๋ ๋ฐฉ๋ฒ
# ํ์ผ, ํด๋๋ช
๋ง ๋ฉ๊ทธ๋ฌ๋ ์๋ ๊ฒฝ์ฐ๋ค์ด๋ฉฐ, git์ด ๊ด๋ฆฌํ๋ ๋ชจ๋ ๊ฒฝ๋ก์ ์กด์ฌํ๋ folderfolderOrFile, onlyFolder ํด๋์ onlyFile.txt, folderOrFile ํ์ผ๋ค์ ์ ๋ถ ์ ์ธ๋๋ค.
# ์๋ฅผ ๋ค์ด otherFolder/folderfolderOrFile/, otherFolder/anotherFolder/onlyFile.txt ๋ฑ ๋ํ ์ ์ธ๋๋ค.
"/"์ด ๋งจ ๋ง์ง๋ง์ ์กด์ฌํ ๊ฒฝ์ฐ๋ ์กด์ฌํ์ง ์์ ๊ฒฝ์ฐ ๋ชจ๋, ํด๋น ์ด๋ฆ์ ํด๋๋ฅผ ์ ์ธํ๋ฉฐ, ํ์ผ์ ์ ์ธํ๊ณ ์ถ๋ค๋ฉด ์๋์ ๋ฐฐ์ธ "*"(๋ณํ, asterisk)๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
์์ ์ถ๊ฐ ํด๋ ๊ฒฝ๋ก๊ฐ ์ ์๋์ง ์๊ณ , ์ด๋ฆ๋ง ๋ฉ๊ทธ๋ฌ๋ ์๋ ๊ฒฝ์ฐ์๋ ๋ชจ๋ ๊ฒฝ๋ก์ ํด๋๋ ํ์ผ์ด ์ ์ธ ๋์์ด๋ค.
*.html
# ๋ชจ๋ html ํ์ฅ์ ํ์ผ์ ์ ์ธ์ํด
noInclude.*
# noInclude๋ผ๋ ์ด๋ฆ์ ํ์ผ์ ํ์ฅ์ ๊ด๊ณ์์ด ๋ชจ๋ ์ ์ธ์ํด
exclude-[0-9]/
# exclude-0 ๋ถํฐ exclude-9๊น์ง์ ํด๋๋ฅผ ์ ๋ถ ์ ์ธ์ํด
credential??
# ์ ๋์ด credential๋ก ์์ํ๊ณ ๋ค์ ์์ ๋ ๊ธ์๊ฐ ์ถ๊ฐ๋ ํ์ผ๊ณผ ํด๋๋ฅผ ์ ๋ถ ์ ์ธ์ํด
no*.js
# ์ ๋์ด no๋ก ์์ํ๋ ๋ชจ๋ ๊ธธ์ด์ ํ์ผ๋ช
์ ๊ฐ์ง js ํ์ฅ์ ํ์ผ์ ์ ์ธ์ํด
"*"์ "/"์ ์ ์ธํ ๋ชจ๋ ๋ฌธ์์ด์, "?"์ "/"์ ์ ์ธํ ๋ชจ๋ ๋ฌธ์ ํ๋๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, "[a-zA-Z]"๋ ํด๋น ๋ฒ์ ๋ด์ ๋ฌธ์ ํ๋๋ฅผ ์๋ฏธํ๋ค.
์ ์ด์ ํ์ผ ๋ฐ ํด๋๋ช ์ ํฌํจ์ํค๋ ๊ฑด ๋ถ๊ฐ๋ฅํ๊ธด ํ์ง๋ง "\?", "\*"๋ฅผ ์ด์ฉํด ํจํด์ด ์๋ ๋ฌธ์ ๊ทธ๋๋ก ์ฌ์ฉํ ์ ์๋ค.
**/allExclude
# allExclude๋ ์ด๋ฆ์ ๋ชจ๋ ํ์ผ๊ณผ ํด๋๋ฅผ ๊ฒฝ๋ก์ ๊ด๊ณ์์ด ์ ์ธ์ํจ๋ค.
allExclude
# ์ด์ ์ ๋ฐฐ์ ๋ ๋ฐฉ๋ฒ, **๋ฅผ ์ฌ์ฉํ ๋ฐ๋ก ์์ ๊ฐ์ ๋์์ด์ง๋ง, ๊ฐ๋
์ฑ์ ์ผ๋ก **๋ฅผ ์ฌ์ฉํ๋๊ฒ ๋ ์ข์ผ๋ฉฐ, ์๋์ ๊ฐ์ ๋์์ด ๊ฐ๋ฅํ๋ค.
**/otherFolder/*.html
# ์ด๋ ํ ๊ฒฝ๋ก์์๋ otherFolder๋ผ๋ ํด๋ ๋ด๋ถ์ ๋ชจ๋ html ํ์ผ์ ์ ์ธํจ, **๋ฅผ ์ฌ์ฉํด์ผ๋ง ์ธ ์ ์๋ ํํ
rootFolder/**/anyFile.*
# rootFolder๋ด์ anyFile์ด๋ผ๋ ์ด๋ฆ์ ํ์ผ์ ์ถ๊ฐ์ ์ธ ๊ฒฝ๋ก์ ๊ด๊ณ์์ด ๋ชจ๋ ์ ์ธํ๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก **๋ฅผ ์ฌ์ฉํด์ผ๋ง ์ธ ์ ์๋ ํํ
# rootFolder/extra/anyFile.txt๋, rootFolder/moreFolder/anyFile.js, rootFolder/long/longFolders/anyFile.md ๋ชจ๋ ์ ์ธ๋๋ค.
๋๊ฐ์ ๋ณํ(asterisk) โ**โ๋ฅผ ์ด์ฉํด ๊ฒฝ๋ก์ ๊ด๊ณ์์ด ๋ชจ๋ ํ์ผ ๋ฐ ํด๋๋ฅผ ์ ์ธ์ํฌ ์ ์๋ค.
๋๊ฐ ์ด์์ ๋ณํ, ์๋ฅผ ๋ค์ด โ***โ ๋ถํฐ๋ ๊ฐ์ 1๊ฐ์ ๋ณํ์ ๊ฐ์ด ์๋ํ๋ค. ์ฆ โ*โ์ ๋ณ ์ฐจ์ด๊ฐ ์์ ๊ฒ์ด๋ค.
_articles/etc/etcs/gitignore ์์ฑ๋ฒ.md