์ฐ๋ฆฌ๊ฐ Version Controll ์ ์ํด์ git ์ ์ฌ์ฉํ๊ณ git hosting ์ผ๋ก github ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ณด์์ ์ผ๋ก๋ ๊ฐ์ธ์ ์ผ๋ก ์ฌ๋ผ๊ฐ๋ฉด ์๋๋ ํ์ผ๋ค์ด ์กด์ฌํ๋ค.
์ด๋ฅผํ ๋ฉด ๊ฐ๋จํ key ํ์ผ์ด๋ผ๋์ง, ๊ฐ์ธ์ ์ธ ์ ๋ณด๊ฐ ๋ด๊ธด data ํ์ผ์ด๋ผ๋์ง ํน์ test ๋ฅผ ์ํด build ๋ฅผ ํ๋ build ํ์ผ์ด๋ผ๋์ง..
์ด๋ ๊ฒ ์์น ์๋ ํ์ผ์ git ์ ์ฌ๋ฆฌ๋ ๋ฐฉ๋ฒ์๋ ์ฌ๋ฌ ๋ฐฉ๋ฒ์ด ์์ง๋ง ์ค๋์ .gitignore
์ด๋ผ๋ ํ์ผ์ ์ด์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ์์๋ณด๋๋ก ํ์
.gitignore ์ด๋?
.gitignore ์
ํ๋ก์ ํธ Repository ์ ์์น ์๋ file ๋ฐ ๋ฐ์ดํฐ๋ฅผ git ์์ ์ ์ธ์ํค๋ ์ค์ ์ด ๋ด๊ธด ํ์ผ์ ์๋ฏธํ๋ค.
์ฐ๋ฆฌ๊ฐ Springboot ๋ก ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ฉด ์๋์ผ๋ก ์๊ธฐ๋ .gitignore ์ด๋ผ๋ ํ์ผ์ด ์๋์ผ๋ก ์์ฑ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ธ๋ถ ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ์๋ฐ,
์ด๋ Spring Boot ๋ก ์ ํ๋ฆฌ์ผ์ด์
์ ๋น๋ํ ๋ ์์ฑ๋๋ .out
๋๋ ํ ๋ฆฌ์ ๋ด๊ธฐ๋ ๋ด์ฉ์ด ๋๋ฌด ๋ง์์ ธ์ git ์ ์ฌ๋ผ๊ฐ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ด๋ค.
์ด์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฐ๋ฆฌ๋ github ์ build ํ๋ target ํ์ผ๋ค์ ์ฌ๋ฆด ํ์๊ฐ ์๋ค.
.gitignore ํ์ผ ์์ฑ ๊ท์น ๋ฐ ๋ฌธ๋ฒ
.gitignore ํ์ผ์ ํญ์ ํ๋ก์ ํธ ๋ฃจํธ์ ์์นํด์ผ ํ๋ค
# : ์ฃผ์
*.a # ํ์ฅ์๊ฐ .a ์ธ ๋ชจ๋ ํ์ผ์ ์ ์ธํ๋ค.
!lib.a # *.a ๋ก ํ์ฅ์ .a ๋ฅผ ๋ชจ๋ exclude ์์ผฐ์ง๋ง ๊ผญ ์ฌ๋ผ๊ฐ์ผ ํ .a ํ์ผ์ ์ถ๊ฐํ๋ค
build/ # build ๋๋ ํ ๋ฆฌ์ ์๋ ๋ชจ๋ ํ์ผ์ ์ ์ธ์ํจ๋ค
doc/*.md # doc ๋๋ ํ ๋ฆฌ ์๋ ์ ์๋ *.md ํ์ฅ์ ํ์ผ์ exclude ํ๋ค
์ค์ ๋ก ์ ์ฉํ๊ธฐ
์ค์ ๋ก BoB ๊ณผ์ ์ธ add-nbo ์์ค ์ฝ๋๋ฅผ github ์ ์ ์ฅํ๋ ๊ณผ์ ์ ๋ณด์ด๋๋ก ํ๊ฒ ๋ค.
ํด๋น ๋ก์ปฌ ๋ ํฌ์งํ ๋ฆฌ์๋ ๋ค์๊ณผ ๊ฐ์ ๊ตฌ์กฐ๋ก ํ์ผ๋ค์ด ์กด์ฌํ๊ณ , ํด๋น ํ์ผ์ BoB-Assignments / add-nbo ๋ ํฌ์งํ ๋ฆฌ ์ ์ฌ๋ฆฌ๋ ค ํ๋ค.
$ tree
.
โโโ add-nbo
โโโ main.c
โโโ file_util.h
โโโ file_util.c
โโโ Makefile
๋ฆฌ๋ ์ค ๋น๋ ๋๊ตฌ์ธ Makefile ์์ ๋น๋๋ฅผ ์ํํ๋ฉด 2 ๊ฐ์ Object file ์ ์์ฑํ๋ค.
file_util.o
main.o
$ ls
main.c main.o file_util.h file_util.c file_util.o
์ด๋ฌํ ์ค๋ธ์ ํธ ํ์ผ์ github ์ ์ฌ๋ฆด ํ์๊ฐ ์์ผ๋ฏ๋ก ์๋์ ๊ฐ์ด .gitignore ํ์ผ์ ์์ฑํ๋ค.
# .gitignore
### object ํ์ผ ๋ฌด์
*.o
๊ทธ๋ฆฌ๊ณ git add, commit, push ๋ฅผ ํด์ ์๊ฒฉ ๋ ํฌ์งํ ๋ฆฌ์ ์ฌ๋ ค๋ณด๋ฉด,
๊ทธ๋ผ build ๋ฅผ ํ๋๋ผ๋ Object ํ์ผ์ ๋ชจ๋ ๋ฌด์๋๊ณ , c์ h ํ์ฅ์ ํ์ผ๋ง ์ ์์ ์ผ๋ก ์ ์ฌ๋ผ๊ฐ๊ฒ ๋๋ค.
๋๊ธ