[Git/GitHub] - GitHub์ ์๋ชป ์ฌ๋ผ๊ฐ ํ์ผ ์ ๊ฑฐํ๊ธฐ(.gitignore)
๐ GitHub์ ์๋ชป ์ฌ๋ผ๊ฐ ํ์ผ ์ ๊ฑฐํ๊ณ .gitignore์ ์ถ๊ฐํ๊ธฐ
์ ๋ ํ์์ ์์ ์ ํ๋ค๊ฐ ์ค์๋ก ๋ถํ์ํ ํ์ผ๊น์ง GitHub์ ์ฌ๋ฆฐ ๊ฒฝ์ฐ๊ฐ ์์์ต๋๋ค.
์๋ฅผ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ฌํญ๋ค์ด ์กด์ฌํฉ๋๋ค.
- NodeJS์ npm module
- Java์ targetํด๋ ํ์ ํ์ผ๋ค(.class)
- ๋ฏผ๊ฐํ ์ ๋ณด๋ค(DB์ ๋ณด, AWS ๋น๋ฐ ํค ๋ฑ๋ฑ)
ํนํ๋ ์ธ ๋ฒ์งธ์ ๋ฏผ๊ฐํ ์ ๋ณด๋ค์ GitHub์ ์๋ชปํด์ ์ฌ๋ ธ์ ๊ฒฝ์ฐ, ๊ฐ๋ ํด๋น ์ ๋ณด๋ฅผ ์ด์ฉํด AWS์ ํญํ ๊ณผ๊ธ์ ๋ง๋๋ค๋ ๊ธ์ ๋ช ๋ฒ ๋ณธ์ ์ด ์์๋๋ฐ์, ๋ฐ๋ผ์ ๋ ์ฃผ์ํด์ผ ํฉ๋๋ค.
์์ ๊ฐ์ ๋ด์ฉ๋ค์ .gitignore ๋ผ๋ ํ์ผ์ ์ถ๊ฐ๋ฅผ ํด์ผํฉ๋๋ค.
.gitignore๋ ?
.gitignore๋ ๊ฐ๋จํ ๋งํด Git ๋ฒ์ ๊ด๋ฆฌ์์ ์์ ์ฌํญ๋ค์ฒ๋ผ ์ ์ธํ ํ์ผ ๋ชฉ๋ก์ ์ง์ ํ๋ ํ์ผ์ ๋๋ค.
.gitignore ํ์ผ์ ์ถ๊ฐํ๋ฉด GitHub์ ํด๋น ๋ด์ฉ์ ์ถ๊ฐํ์ง ์์ต๋๋ค.
* ์ธํ ๋ฆฌ์ ์ด์์ gitignore ํ์ผ์ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ์๋ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์ :)
https://elevatingcodingclub.tistory.com/72
GitHub์ ์๋ชป ์ฌ๋ผ๊ฐ ํ์ผ ์ญ์
1) ๋จผ์ ์๊ฒฉ ์ ์ฅ์์์ ํ์ผ์ ์ญ์ ํฉ๋๋ค.
// ์๊ฒฉ ์ ์ฅ์ ๋ฐ ๋ก์ปฌ ์ ์ฅ์์ ํ์ผ์ ์ญ์ ํฉ๋๋ค.
$ git rm -r [File Name]
// ์๊ฒฉ ์ ์ฅ์์ ์๋ ํ์ผ๋ง ์ญ์ ํฉ๋๋ค.(๋ก์ปฌ ์ ์ฅ์์ ํ์ผ์ ์ญ์ ๋์ง ์์ต๋๋ค.)
$ git rm --cached -r [File Name]
--cached ๋ช ๋ น์ด๋ ์๊ฒฉ์ ์ฅ์์ ํด๋ ๋ฐ ํ์ผ์ ์ญ์ ํ๋ค๊ณ ์๋ ค์ฃผ๋ ์ต์ ์ ๋๋ค.
๋ฐ๋ผ์ ๋ง์ฝ --cached ์ต์ ์ ์ถ๊ฐํ์ง ์๊ณ rm์ ํ ๊ฒฝ์ฐ, ์๊ฒฉ ์ ์ฅ์ ๋ฐ ๋ก์ปฌ ์ ์ฅ์์์ ์ ๋ถ ํ์ผ์ ์ญ์ ํด๋ฒ๋ฆฌ๊ฒ ๋ฉ๋๋ค.
๋ณดํต gitignore์ ์ถ๊ฐํ๋ ๋ด์ญ๋ค์ ์๊ฒฉ ์ ์ฅ์์๋ง ์ญ์ ํ๊ณ , ๋ก์ปฌ ์ ์ฅ์์๋ ํด๋น ํด๋ ๋ฐ ํ์ผ์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์
--cached ์ต์ ์ ์ถ๊ฐํด์ ์ฌ์ฉํฉ๋๋ค.
์ ๋ ์ ์ฌ์ง์์ .idea ํด๋๋ฅผ ์๊ฒฉ์์๋ ์ญ์ ํ๊ณ , ๋ก์ปฌ์๋ ๊ทธ๋๋ก ๋๋ ์์ ์ด๊ธฐ ๋๋ฌธ์ git rm --cached -r๋ฅผ ์ฌ์ฉํฉ๋๋ค.
// .idea ํด๋ ํ์์ ๋ชจ๋ ํ์ผ ์ญ์
$ git rm --cached -r .idea/
2) ๋ค์์ผ๋ก .gitignore ๋ฅผ ์ค์ ํฉ๋๋ค.
gitignore ์์ฑ ์ฌ์ดํธ ๋ฅผ ํตํด ํด๋น ํ๋ก์ ํธ์ ๋ง๋ .gitignore ์ฝ๋๋ฅผ ์๋์ผ๋ก ์์ฑํ ์๋ ์์ต๋๋ค.
๋ํ IntelliJ ์์๋ gitignore ํ๋ฌ๊ทธ์ธ ์ด ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ๊ฐ๋จํ ํด๋ฆญ๋ง์ผ๋ก gitignore์ ํ์ผ์ ์ถ๊ฐํ ์๋ ์์ต๋๋ค. ๐
.gitignore ํ์ผ์ ์์ฑํ๊ณ , ์์์ ์ ๊ฑฐํ .idea ํด๋๋ฅผ ์ถ๊ฐํฉ๋๋ค.
์ ์ฌ์ง์์ .idea ํด๋์ ์์์ด ์ฃผํฉ์์ผ๋ก ๋ ๊ฑธ ํ์ธํ ์ ์๋๋ฐ ์์ ๊ฐ์ด ์ฃผํฉ์์ ํด๋๊ฐ Git ๋ฒ์ ๊ด๋ฆฌ์์ ์ ์ธํ ํด๋์ ๋๋ค.
3) ๋ง์ง๋ง์ผ๋ก ์๊ฒฉ ์ ์ฅ์์ ์ ์ฉ(Push) ํด์ค๋๋ค.
Git ๋ฒ์ ๊ด๋ฆฌ์์ ์์ ํ ์ ์ธํ๊ธฐ ์ํด์๋ ์ 1~2 ๊ณผ์ ์ ๋๋ธ ํ commit & push๋ฅผ ํด์ฃผ์ด์ผ ํฉ๋๋ค.
// ๋ฒ์ ๊ด๋ฆฌ์์ ์์ ํ ์ ์ธํ๊ธฐ ์ํด commit
$ git commit -m "Fixed untracked files"
// ์๊ฒฉ ์ ์ฅ์(origin)์ push ์งํ
$ git push origin
์ ์ git status ์ํ์ธ๋ฐ์, ์ ๋ ํ์ฌ ๋ค๋ฅธ ํ์ผ๋ค๋ ํจ๊ป ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ์ ์ธํ ํ์ผ๋ค์ ์ง์ ์ปค๋ฐํ์ต๋๋ค.
์์ ๊ฐ์ด ์ญ์ ๋ ํ์ผ๋ค์ commit & push ๋ฅผ ์งํํฉ๋๋ค.
push๋ฅผ ํ๊ณ GitHub๋ฅผ ํ์ธํด๋ณด๋ฉด .idea ํด๋๊ฐ ์์ ํ ์ญ์ ๋ ๊ฑธ ํ์ธํ ์ ์์ต๋๋ค! ๐
์ธํ ๋ฆฌ์ ์ด ๊ธฐ์ค์ผ๋ก .idea ํด๋๋ targetํด๋๋ ๋ณดํต gitignore ํ์ผ์ ์ถ๊ฐํ์ง๋ง,
ํนํ ๋ฏผ๊ฐํจ ์ ๋ณด๋ค์ ๊ผญ gitignore ํ์ผ์ ์ถ๊ฐํด์ GitHub์ ์ฌ๋ฆฌ์ง ์๋๋ก ์์ ํด์ผ ํฉ๋๋ค!
References
- https://gmlwjd9405.github.io/2018/05/17/git-delete-incorrect-files.html
- https://elevatingcodingclub.tistory.com/72