1. ์ด๋ณด์๋ฅผ ์ํ Git ์์ธ ๊ฐ์ด๋
์ค๋ ์ฐ๋ฆฌ๋ Git์ด๋ผ๋ ๋ฒ์ ์ ์ด ์์คํ ์ ๋ํด ์ด์ผ๊ธฐํ ๊ฒ์ ๋๋ค.
์ด ๋๊ตฌ๋ฅผ ์๊ณ ์ดํดํ์ง ์๊ณ ๋ ๋ณธ๊ฒฉ์ ์ธ ํ๋ก๊ทธ๋๋จธ๊ฐ ๋ ์ ์์ต๋๋ค. ๋ฌผ๋ก ์ง์์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ํด ๋ชจ๋ Git ๋ช ๋ น๊ณผ ๊ธฐ๋ฅ์ ๋จธ๋ฆฟ์์ ๊ฐ์งํ ํ์๋ ์์ต๋๋ค. ์ผ์ด๋๋ ๋ชจ๋ ์ผ์ ์ดํดํ๋ ๋ฐ ๋์์ด ๋๋ ์ผ๋ จ์ ๋ช ๋ น์ ์์์ผ ํฉ๋๋ค.
ํ๋ด ๊ธฐ์ด
Git์ ์ฐ๋ฆฌ ์ฝ๋์ ๋ถ์ฐ ๋ฒ์ ์ ์ด ์์คํ ์ ๋๋ค. ์ ํ์ํ๊ฐ์? ํ์๋ ์์ ์ ๊ด๋ฆฌํ๊ธฐ ์ํ ์ผ์ข ์ ์์คํ ์ด ํ์ํฉ๋๋ค. ์๊ฐ ๊ฒฝ๊ณผ์ ๋ฐ๋ผ ๋ฐ์ํ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ถ์ ํ๋ ๋ฐ ํ์ํฉ๋๋ค.
์ฆ, ์ด๋ค ํ์ผ์ด ์ด๋ป๊ฒ ๋ณ๊ฒฝ๋์๋์ง ๋จ๊ณ๋ณ๋ก ํ์ธํ ์ ์์ด์ผ ํฉ๋๋ค. ์ด๋ ๋จ์ผ ์์ ์ ์ปจํ ์คํธ์์ ๋ณ๊ฒฝ๋ ์ฌํญ์ ์กฐ์ฌํ์ฌ ๋ณ๊ฒฝ ์ฌํญ์ ๋๋๋ฆด ์ ์์ ๋ ํนํ ์ค์ํฉ๋๋ค.
๋ค์๊ณผ ๊ฐ์ ์ํฉ์ ์์ํด ๋ด ์๋ค. ์๋ํ๋ ์ฝ๋๊ฐ ์๊ณ ๊ทธ ์์ ๋ชจ๋ ๊ฒ์ด ์ํธํ์ง๋ง ๋ฌด์ธ๊ฐ๋ฅผ ๊ฐ์ ํ๊ฑฐ๋ ์กฐ์ ํ๊ธฐ๋ก ๊ฒฐ์ ํฉ๋๋ค. ํฐ ๋ฌธ์ ๋ ์๋์ง๋ง ์ฐ๋ฆฌ์ "๊ฐ์ "์ผ๋ก ์ธํด ํ๋ก๊ทธ๋จ ๊ธฐ๋ฅ์ ์ ๋ฐ์ด ์์๋์ด ์์ ์ด ๋ถ๊ฐ๋ฅํด์ก์ต๋๋ค. ๊ทธ๋์ ์ง๊ธ ๋ฌด์? Git์ด ์์๋ค๋ฉด ๋ชจ๋ ๊ฒ์ด ์๋ ์ด๋ ๋์ง ๊ธฐ์ตํ๋ ค๊ณ ๋ช ์๊ฐ ๋์ ์์์ ์๊ฐํด์ผ ํ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ Git์ ์ฌ์ฉํ๋ฉด ์ปค๋ฐ์ ๋กค๋ฐฑํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
๋๋ ๋ ๋ช ์ ๊ฐ๋ฐ์๊ฐ ๋์์ ์์ ์ ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒฝ์ฐ ์ด๋ป๊ฒ ํด์ผ ํฉ๋๊น? Git์ด ์์ผ๋ฉด ์๋ณธ ์ฝ๋ ํ์ผ์ ๋ณต์ฌํ์ฌ ๋ณ๋๋ก ์์ ํฉ๋๋ค. ๋ ๋ค ๊ธฐ๋ณธ ๋๋ ํ ๋ฆฌ์ ๋ณ๊ฒฝ ์ฌํญ์ ์ถ๊ฐํ๋ ค๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ์ด๋ป๊ฒ ํฉ๋๊น?
Git์ ์ฌ์ฉํ๋ค๋ฉด ๊ทธ๋ฐ ๋ฌธ์ ๋ ์์ ๊ฒ์ ๋๋ค.
ํ๋ด ์ค์น
์ปดํจํฐ์ Java๋ฅผ ์ค์นํด ๋ด ์๋ค. ์ด ํ๋ก์ธ์ค๋ ์ด์ ์ฒด์ ๋ง๋ค ์ฝ๊ฐ ๋ค๋ฆ ๋๋ค.
Windows์ ์ค์น
ํ์์ ๊ฐ์ด exe ํ์ผ์ ๋ค์ด๋ก๋ํ์ฌ ์คํํด์ผ ํฉ๋๋ค. ์ฌ๊ธฐ์์๋ ๋ชจ๋ ๊ฒ์ด ๊ฐ๋จํฉ๋๋ค. ์ฒซ ๋ฒ์งธ Google ๋งํฌ๋ฅผ ํด๋ฆญํ๊ณ ์ค์น๋ฅผ ์ํํ๋ฉด ๋ฉ๋๋ค. ์ด๋ฅผ ์ํด Windows์์ ์ ๊ณตํ๋ bash ์ฝ์์ ์ฌ์ฉํฉ๋๋ค.
Windows์์๋ Git Bash๋ฅผ ์คํํด์ผ ํฉ๋๋ค. ์์ ๋ฉ๋ด์ ํ์๋๋ ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ด์ ์์ ํ ์ ์๋ ๋ช ๋ น ํ๋กฌํํธ์ ๋๋ค.
Git์ ์ด๊ธฐ ์ํด ๋งค๋ฒ ํ๋ก์ ํธ๊ฐ ์๋ ํด๋๋ก ์ด๋ํ์ง ์์ผ๋ ค๋ฉด ํ์ํ ๊ฒฝ๋ก์์ ๋ง์ฐ์ค ์ค๋ฅธ์ชฝ ๋ฒํผ์ ์ฌ์ฉํ์ฌ ํ๋ก์ ํธ ํด๋์์ ๋ช ๋ น ํ๋กฌํํธ๋ฅผ ์ด ์ ์์ต๋๋ค.
๋ฆฌ๋ ์ค์ ์ค์นํ๊ธฐ
์ผ๋ฐ์ ์ผ๋ก Git์ Linux ๋ฐฐํฌํ์ ์ผ๋ถ์ด๋ฉฐ ์๋ Linux ์ปค๋ ๊ฐ๋ฐ์ฉ์ผ๋ก ์์ฑ๋ ๋๊ตฌ์ด๊ธฐ ๋๋ฌธ์ ์ด๋ฏธ ์ค์น๋์ด ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋ ์ง ์์ ์ํฉ์ด ์์ต๋๋ค. ํ์ธํ๋ ค๋ฉด ํฐ๋ฏธ๋์ ์ด๊ณ git --version์ ์์ฑํด์ผ ํฉ๋๋ค. ์ดํดํ ์ ์๋ ๋ต๋ณ์ ์ป์ผ๋ฉด ์๋ฌด๊ฒ๋ ์ค์นํ ํ์๊ฐ ์์ต๋๋ค.
ํฐ๋ฏธ๋์ ์ด๊ณ ์ค์นํฉ๋๋ค. Ubuntu์ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ด ์์ฑํด์ผ ํฉ๋๋ค. sudo apt-get install git. ์ด์ ๋ชจ๋ ํฐ๋ฏธ๋์์ Git์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
macOS์ ์ค์น
์ฌ๊ธฐ์๋ Git์ด ์ด๋ฏธ ์๋์ง ๋จผ์ ํ์ธํด์ผ ํฉ๋๋ค(์ ์ฐธ์กฐ, Linux์ ๋์ผ).
๊ฐ์ง๊ณ ์์ง ์์ ๊ฒฝ์ฐ ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ ์ต์ ๋ฒ์ ์ ๋ค์ด๋ก๋ํ๋ ๊ฒ์ ๋๋ค . Xcode๊ฐ ์ค์น๋์ด ์์ผ๋ฉด Git์ด ์๋์ผ๋ก ์ค์น๋ฉ๋๋ค.
ํ๋ด ์ค์
Git์๋ ์์ ์ ์ ์ถํ ์ฌ์ฉ์์ ๋ํ ์ฌ์ฉ์ ์ค์ ์ด ์์ต๋๋ค. ์ปค๋ฐ์ด ์์ฑ๋ ๋ Git์ด Author ํ๋์ ๋ํด ์ด ์ ๋ณด๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ์ด์น์ ๋ง๊ณ ํ์ํฉ๋๋ค.
๋ค์ ๋ช ๋ น์ ์คํํ์ฌ ๋ชจ๋ ํ๋ก์ ํธ์ ๋ํ ์ฌ์ฉ์ ์ด๋ฆ๊ณผ ๋น๋ฐ๋ฒํธ๋ฅผ ์ค์ ํ์ญ์์ค.
ํน์ ํ๋ก์ ํธ(์: ๊ฐ์ธ ํ๋ก์ ํธ)์ ์์ฑ์๋ฅผ ๋ณ๊ฒฝํด์ผ ํ๋ ๊ฒฝ์ฐ "--global"์ ์ ๊ฑฐํ ์ ์์ต๋๋ค. ์ด๊ฒ์ ์ฐ๋ฆฌ์๊ฒ ๋ค์์ ์ค ๊ฒ์ ๋๋ค:
์ฝ๊ฐ์ ์ด๋ก
์ฃผ์ ์ ๋ํด ์์ธํ ์์๋ณด๋ ค๋ฉด ๋ช ๊ฐ์ง ์๋ก์ด ๋จ์ด์ ๋์์ ์๊ฐํด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ด์ผ๊ธฐํ ๊ฒ์ด ์์ต๋๋ค. ๋ฌผ๋ก ์ด๊ฒ์ ์์ด์์ ์ฐ๋ฆฌ์๊ฒ ์ค๋ ์ ๋ฌธ ์ฉ์ด์ด๋ฏ๋ก ๊ดํธ ์์ ๋ฒ์ญ์ ์ถ๊ฐํ๊ฒ ์ต๋๋ค.
์ด๋ค ๋ง๊ณผ ํ๋?
- Git ์ ์ฅ์
- ์ ์ง๋ฅด๋ค
- ๋๋ญ๊ฐ์ง
- ๋ณํฉ
- ๊ฐ๋ฑ
- ๋น๊ธฐ๋ค
- ํธ์
- ์ผ๋ถ ํ์ผ(.gitignore)์ ๋ฌด์ํ๋ ๋ฐฉ๋ฒ
๋ฑ๋ฑ.
Git์ ์ํ
Git์๋ ์ดํดํ๊ณ ๊ธฐ์ตํด์ผ ํ๋ ๋ช ๊ฐ์ง ์กฐ๊ฐ์์ด ์์ต๋๋ค.
- ์ถ์ ๋์ง ์์
- ์์
- ์ผ๋ถ๋ฌ ๊พธ๋ฏผ
- ํ์ ์ ์ธ
์ด๊ฒ์ ์ด๋ป๊ฒ ์ดํดํด์ผ ํ ๊น์?
์ฝ๋๊ฐ ํฌํจ๋ ํ์ผ์ ์ ์ฉ๋๋ ์ํ์ ๋๋ค. ์ฆ, ์๋ช ์ฃผ๊ธฐ๋ ์ผ๋ฐ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์์ฑ๋์์ง๋ง ์์ง ์ ์ฅ์์ ์ถ๊ฐ๋์ง ์์ ํ์ผ์ "์ถ์ ๋์ง ์์" ์ํ์ ๋๋ค.
- Git ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ด๋ฏธ ์ถ๊ฐ๋ ํ์ผ์ ๋ณ๊ฒฝํ๋ฉด ์ํ๊ฐ "์์ ๋จ"์ด ๋ฉ๋๋ค.
- ๋ณ๊ฒฝํ ํ์ผ ์ค์์ ํ์ํ ํ์ผ(์: ์ปดํ์ผ๋ ํด๋์ค๊ฐ ํ์ ์์)์ ์ ํํ๋ฉด ์ด๋ฌํ ํด๋์ค๊ฐ "์คํ ์ด์ง" ์ํ๋ก ๋ณ๊ฒฝ๋ฉ๋๋ค.
- ์ค๋น ์ํ์ ์ค๋น๋ ํ์ผ์์ ์ปค๋ฐ์ด ์์ฑ๋์ด Git ๋ฆฌํฌ์งํ ๋ฆฌ๋ก ์ด๋ํฉ๋๋ค. ๊ทธ ์ดํ์๋ "์คํ ์ด์ง" ์ํ์ ํ์ผ์ด ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฌ์ ํ ์ํ๊ฐ "์์ ๋จ"์ธ ํ์ผ์ด ์์ ์ ์์ต๋๋ค.
๋ค์๊ณผ ๊ฐ์ด ํ์๋ฉ๋๋ค.
์ปค๋ฐ์ด๋ ๋ฌด์์ ๋๊น?
์ปค๋ฐ์ ๋ฒ์ ์ ์ด์ ๊ด๋ จํ์ฌ ์ฃผ์ ์ด๋ฒคํธ์ ๋๋ค. ์ฌ๊ธฐ์๋ ์ปค๋ฐ์ด ์์๋ ์ดํ์ ๋ณ๊ฒฝ๋ ๋ชจ๋ ๋ด์ฉ์ด ํฌํจ๋ฉ๋๋ค. ์ปค๋ฐ์ ๋จ์ผ ์ฐ๊ฒฐ ๋ชฉ๋ก์ฒ๋ผ ํจ๊ป ์ฐ๊ฒฐ๋ฉ๋๋ค.
ํนํ ์ฒซ ๋ฒ์งธ ์ปค๋ฐ์ด ์์ต๋๋ค. ๋ ๋ฒ์งธ ์ปค๋ฐ์ด ์์ฑ๋๋ฉด ๋ ๋ฒ์งธ ์ปค๋ฐ์ ์ฒซ ๋ฒ์งธ ์ปค๋ฐ ๋ค์์ ๋ฌด์์ด ์ค๋์ง ์๊ณ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ์ ๋ณด๋ฅผ ์ถ์ ํ ์ ์์ต๋๋ค.
์ปค๋ฐ์๋ ๋ฉํ๋ฐ์ดํฐ๋ผ๊ณ ํ๋ ์์ฒด ์ ๋ณด๋ ์์ต๋๋ค.
- ์ปค๋ฐ์ ์ฐพ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ์ปค๋ฐ์ ๊ณ ์ ์๋ณ์
- ์ปค๋ฐ์ ๋ง๋ ์์ฑ์์ ์ด๋ฆ
- ์ปค๋ฐ์ด ์์ฑ๋ ๋ ์ง
- ์ปค๋ฐ ์ค์ ์ํ๋ ์์ ์ ์ค๋ช ํ๋ ์ฃผ์
๋ค์๊ณผ ๊ฐ์ด ํ์๋ฉ๋๋ค.
์ง์ ์ด๋ ๋ฌด์์ ๋๊น?
๋ถ๊ธฐ๋ ์ผ๋ถ ์ปค๋ฐ์ ๋ํ ํฌ์ธํฐ์ ๋๋ค. ์ปค๋ฐ์ ์ด๋ค ์ปค๋ฐ์ด ์ ํํ๋์ง ์๊ณ ์๊ธฐ ๋๋ฌธ์ ๋ถ๊ธฐ๊ฐ ์ปค๋ฐ์ ๊ฐ๋ฆฌํค๋ฉด ์ด์ ์ปค๋ฐ๋ ๋ชจ๋ ์ ์ฉ๋ฉ๋๋ค.
๋ฐ๋ผ์ ๋์ผํ ์ปค๋ฐ์ ๊ฐ๋ฆฌํค๋ ์ง์ ์ ์ํ๋ ๋งํผ ๋ง์ด ๊ฐ์ง ์ ์๋ค๊ณ ๋งํ ์ ์์ต๋๋ค.
์์ ์ ๋ธ๋์น์์ ๋ฐ์ํ๋ฏ๋ก ์ ์ปค๋ฐ์ด ์์ฑ๋๋ฉด ๋ธ๋์น๋ ํฌ์ธํฐ๋ฅผ ๋ ์ต๊ทผ ์ปค๋ฐ์ผ๋ก ์ด๋ํฉ๋๋ค.
ํ๋ด ์์ํ๊ธฐ
์๊ฒฉ ์ ์ฅ์๋ฟ๋ง ์๋๋ผ ๋ก์ปฌ ์ ์ฅ์๋ก๋ ์์ ํ ์ ์์ต๋๋ค.
ํ์ํ ๋ช ๋ น์ ์ฐ์ตํ๊ธฐ ์ํด ์์ ์ ๋ก์ปฌ ๋ฆฌํฌ์งํ ๋ฆฌ๋ก ์ ํํ ์ ์์ต๋๋ค. ๋ชจ๋ ํ๋ก์ ํธ ์ ๋ณด๋ฅผ .git ํด๋์๋ง ๋ก์ปฌ๋ก ์ ์ฅํฉ๋๋ค.
์๊ฒฉ ์ ์ฅ์์ ๋ํด ์ด์ผ๊ธฐํ๋ ๊ฒฝ์ฐ ๋ชจ๋ ์ ๋ณด๋ ์๊ฒฉ ์๋ฒ ์ด๋๊ฐ์ ์ ์ฅ๋ฉ๋๋ค. ํ๋ก์ ํธ์ ๋ณต์ฌ๋ณธ๋ง ๋ก์ปฌ์ ์ ์ฅ๋ฉ๋๋ค. ๋ก์ปฌ ๋ณต์ฌ๋ณธ์ ๋ํ ๋ณ๊ฒฝ ์ฌํญ์ ์๊ฒฉ ์ ์ฅ์๋ก ํธ์(git push)ํ ์ ์์ต๋๋ค.
์ฌ๊ธฐ์ ์๋์ ๋ ผ์์์ ์ฐ๋ฆฌ๋ ์ฝ์์์ Git ์์ ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ต๋๋ค. ๋ฌผ๋ก ์ผ์ข ์ GUI ๊ธฐ๋ฐ ์๋ฃจ์ (์: IntelliJ IDEA)์ ์ฌ์ฉํ ์ ์์ง๋ง ๋จผ์ ์คํ ์ค์ธ ๋ช ๋ น๊ณผ ๊ทธ ์๋ฏธ๋ฅผ ํ์ ํด์ผ ํฉ๋๋ค.
๋ก์ปฌ ๋ฆฌํฌ์งํ ๋ฆฌ์์ Git ์์
๋ก์ปฌ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๋ง๋ค๋ ค๋ฉด ๋ค์์ ์์ฑํด์ผ ํฉ๋๋ค.
๊ทธ๋ฌ๋ฉด ์ฝ์์ ํ์ฌ ๋๋ ํ ๋ฆฌ์ ์จ๊ฒจ์ง .git ํด๋๊ฐ ์์ฑ๋ฉ๋๋ค.
.git ํด๋๋ Git ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ํ ๋ชจ๋ ์ ๋ณด๋ฅผ ์ ์ฅํฉ๋๋ค. ์ญ์ ํ์ง ๋ง์ธ์ ;)
๋ค์์ผ๋ก ํ์ผ์ด ํ๋ก์ ํธ์ ์ถ๊ฐ๋๊ณ "์ถ์ ๋์ง ์์" ์ํ๊ฐ ์ง์ ๋ฉ๋๋ค. ์์ ์ ํ์ฌ ์ํ๋ฅผ ํ์ธํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์์ฑํ์ญ์์ค.
์ฐ๋ฆฌ๋ ๋ง์คํฐ ๋ธ๋์น์ ์์ผ๋ฉฐ ๋ค๋ฅธ ๋ธ๋์น๋ก ์ ํํ ๋๊น์ง ์ฌ๊ธฐ์ ๋จ์ ์์ต๋๋ค.
์ด๊ฒ์ ๋ณ๊ฒฝ๋์์ง๋ง ์์ง "์คํ ์ด์ง" ์ํ์ ์ถ๊ฐ๋์ง ์์ ํ์ผ์ ๋ณด์ฌ์ค๋๋ค. "staged" ์ํ์ ์ถ๊ฐํ๋ ค๋ฉด "git add"๋ผ๊ณ ์์ฑํด์ผ ํฉ๋๋ค. ์ฌ๊ธฐ์ ๋ช ๊ฐ์ง ์ต์ ์ด ์์ต๋๋ค. ์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- git add -A โ ๋ชจ๋ ํ์ผ์ "staged" ์ํ๋ก ์ถ๊ฐ
- ์์ ์ถ๊ฐ . โ ์ด ํด๋์ ๋ชจ๋ ํ์ ํด๋์ ๋ชจ๋ ํ์ผ์ ์ถ๊ฐํฉ๋๋ค. ๋ณธ์ง์ ์ผ๋ก ์ด์ ๊ฒ๊ณผ ๋์ผํฉ๋๋ค.
- git add <file name> โ ํน์ ํ์ผ์ ์ถ๊ฐํฉ๋๋ค. ์ฌ๊ธฐ์์ ์ ๊ท์์ ์ฌ์ฉํ์ฌ ์ผ๋ถ ํจํด์ ๋ฐ๋ผ ํ์ผ์ ์ถ๊ฐํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, git add *.java: ์ด๋ ํ์ฅ์๊ฐ java์ธ ํ์ผ๋ง ์ถ๊ฐํ๋ ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
์ฒ์ ๋ ์ต์ ์ ๋ถ๋ช ํ ๊ฐ๋จํฉ๋๋ค. ์ต์ ์ถ๊ฐ ๊ธฐ๋ฅ์ผ๋ก ์ํฉ์ด ๋์ฑ ํฅ๋ฏธ๋ก์์ง๋ฏ๋ก ๋ค์๊ณผ ๊ฐ์ด ์์ฑํด ๋ณด๊ฒ ์ต๋๋ค.
์ํ๋ฅผ ํ์ธํ๊ธฐ ์ํด ์ด๋ฏธ ์๋ ค์ง ๋ช ๋ น์ ์ฌ์ฉํฉ๋๋ค.
์ฌ๊ธฐ์์ ์ ๊ท ํํ์์ด ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ์์ ์ ์ ์์ต๋๋ค. test_resource.txt๋ ์ด์ "์คํ ์ด์ง" ์ํ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง์ผ๋ก ๋ก์ปฌ ์ ์ฅ์ ์์ ์ ์ํ ๋ง์ง๋ง ๋จ๊ณ์ ๋๋ค(์๊ฒฉ ์ ์ฅ์ ์์ ์ ํ๋ ๋ ์์ต๋๋ค ;)) โ ์ ์ปค๋ฐ ์์ฑ:
๋ค์์ ๋ธ๋์น์ ์ปค๋ฐ ํ์คํ ๋ฆฌ๋ฅผ ๋ณด๊ธฐ ์ํ ํ๋ฅญํ ๋ช ๋ น์ ๋๋ค. ๊ทธ๊ฒ์ ํ์ฉํ์:
์ฌ๊ธฐ์์ ์ฒซ ๋ฒ์งธ ์ปค๋ฐ์ ์์ฑํ์ผ๋ฉฐ ๋ช ๋ น์ค์์ ์ ๊ณตํ ํ ์คํธ๊ฐ ํฌํจ๋์ด ์์์ ํ์ธํ ์ ์์ต๋๋ค. ์ด ํ ์คํธ๋ ์ด ์ปค๋ฐ ์ค์ ์ํ๋ ์์ ์ ๊ฐ๋ฅํ ํ ์ ํํ๊ฒ ์ค๋ช ํด์ผ ํ๋ค๋ ์ ์ ์ดํดํ๋ ๊ฒ์ด ๋งค์ฐ ์ค์ํฉ๋๋ค. ์ด๊ฒ์ ์์ผ๋ก ์ฌ๋ฌ ๋ฒ ์ฐ๋ฆฌ์๊ฒ ๋์์ด ๋ ๊ฒ์ ๋๋ค.
์์ง ์ ๋ค์ง ์์ ํธ๊ธฐ์ฌ ๋ง์ ๋ ์๋ GitTest.java ํ์ผ์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋ฌ๋์ง ๊ถ๊ธํ ๊ฒ์ ๋๋ค. ์ง๊ธ ๋ฐ๋ก ์์๋ด ์๋ค. ์ด๋ฅผ ์ํด ๋ค์์ ์ฌ์ฉํฉ๋๋ค.
๋ณด์๋ค์ํผ ์ฌ์ ํ "์ถ์ ๋์ง ์์" ์ํ์ด๋ฉฐ ๋๊ธฐ ์ค์ ๋๋ค. ํ์ง๋ง ํ๋ก์ ํธ์ ์ ํ ์ถ๊ฐํ๊ณ ์ถ์ง ์๋ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น์? ๋๋๋ก ๊ทธ๋ฐ ์ผ์ด ๋ฐ์ํฉ๋๋ค.
์ข ๋ ํฅ๋ฏธ๋กญ๊ฒ ๋ง๋ค๊ธฐ ์ํด ์ด์ test_resource.txt ํ์ผ์ ๋ณ๊ฒฝํด ๋ณด๊ฒ ์ต๋๋ค. ๊ฑฐ๊ธฐ์ ํ ์คํธ๋ฅผ ์ถ๊ฐํ๊ณ ์ํ๋ฅผ ํ์ธํฉ์๋ค.
์ฌ๊ธฐ์์ "์ถ์ ๋์ง ์์" ์ํ์ "์์ ๋จ" ์ํ์ ์ฐจ์ด๋ฅผ ๋ช ํํ๊ฒ ํ์ธํ ์ ์์ต๋๋ค.
GitTest.java๋ "์ถ์ ๋์ง ์์"์ด๊ณ test_resource.txt๋ "์์ ๋จ"์ ๋๋ค.
์์ ๋ ์ํ์ ํ์ผ์ด ์์ผ๋ฏ๋ก ๋ณ๊ฒฝ ์ฌํญ์ ๊ฒ์ฌํ ์ ์์ต๋๋ค. ์ด๋ ๋ค์ ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ์ํํ ์ ์์ต๋๋ค.
์ฆ, ๋ด๊ฐ ํ ์คํธ ํ์ผ์ ์ถ๊ฐํ ๋ด์ฉ์ ์ฌ๊ธฐ์์ ๋ช ํํ๊ฒ ๋ณผ ์ ์์ต๋๋ค. Hello World!
๋ณ๊ฒฝ ์ฌํญ์ ํ ์คํธ ํ์ผ์ ์ถ๊ฐํ๊ณ ์ปค๋ฐ์ ์์ฑํด ๋ณด๊ฒ ์ต๋๋ค.
๋ชจ๋ ์ปค๋ฐ์ ๋ณด๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์์ฑํ์ญ์์ค.
๋ณด์๋ค์ํผ ์ด์ ๋ ๊ฐ์ ์ปค๋ฐ์ด ์์ต๋๋ค.
๋์ผํ ๋ฐฉ์์ผ๋ก GitTest.java๋ฅผ ์ถ๊ฐํฉ๋๋ค. ์ฌ๊ธฐ์๋ ์ค๋ช ์ด ์์ผ๋ฉฐ ๋ช ๋ น๋ง ์์ต๋๋ค.
.gitignore ์์
๋ถ๋ช ํ ์ฐ๋ฆฌ๋ ์ ์ฅ์์ ์์ค ์ฝ๋๋ง ์ ์งํ๊ณ ๋ค๋ฅธ ์ด๋ค ๊ฒ๋ ์ ์งํ์ง ์๊ธฐ๋ฅผ ์ํฉ๋๋ค. ๊ทธ๋์ ๋ฌด์์ด ๋์์ ์ ์์ต๋๊น? ์ต์ํ ๊ฐ๋ฐ ํ๊ฒฝ์์ ์์ฑ๋ ์ปดํ์ผ๋ ํด๋์ค ๋ฐ/๋๋ ํ์ผ.
Git์๊ฒ ๋ฌด์ํ๋ผ๊ณ ์ง์ํ๋ ค๋ฉด ํน์ ํ์ผ์ ๋ง๋ค์ด์ผ ํฉ๋๋ค. ๋ฐฉ๋ฒ: ํ๋ก์ ํธ์ ๋ฃจํธ์ .gitignore๋ผ๋ ํ์ผ์ ๋ง๋ญ๋๋ค. ์ด ํ์ผ์ ๊ฐ ์ค์ ๋ฌด์ํ ํจํด์ ๋ํ๋ ๋๋ค.
์ด ์์์ .gitignore ํ์ผ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
target/
*.iml
.idea/
ํ ๋ฒ ๋ณด์:
- ์ฒซ ๋ฒ์งธ ์ค์ ํ์ฅ์๊ฐ .class์ธ ๋ชจ๋ ํ์ผ์ ๋ฌด์ํ๋ ๊ฒ์ ๋๋ค.
- ๋ ๋ฒ์งธ ์ค์ "๋์" ํด๋์ ํฌํจ๋ ๋ชจ๋ ํญ๋ชฉ์ ๋ฌด์ํ๋ ๊ฒ์ ๋๋ค.
- ์ธ ๋ฒ์งธ ์ค์ ํ์ฅ์๊ฐ .iml์ธ ๋ชจ๋ ํ์ผ์ ๋ฌด์ํ๋ ๊ฒ์ ๋๋ค.
- ๋ค ๋ฒ์งธ ์ค์ .idea ํด๋๋ฅผ ๋ฌด์ํ๋ ๊ฒ์ ๋๋ค.
์์ ๋ฅผ ์ฌ์ฉํด ๋ด ์๋ค. ์๋ ๋ฐฉ์์ ํ์ธํ๊ธฐ ์ํด ์ปดํ์ผ๋ GitTest.class๋ฅผ ํ๋ก์ ํธ์ ์ถ๊ฐํ๊ณ ํ๋ก์ ํธ ์ํ๋ฅผ ํ์ธํฉ๋๋ค.
๋ถ๋ช ํ ์ฐ๋ฆฌ๋ ์ค์๋ก ์ปดํ์ผ๋ ํด๋์ค๋ฅผ ํ๋ก์ ํธ์ ์ถ๊ฐํ๊ณ ์ถ์ง ์์ต๋๋ค(git add -A ์ฌ์ฉ). ์ด๋ ๊ฒ ํ๋ ค๋ฉด .gitignore ํ์ผ์ ๋ง๋ค๊ณ ์์์ ์ค๋ช ํ ๋ชจ๋ ํญ๋ชฉ์ ์ถ๊ฐํฉ๋๋ค.
์ด์ ์ปค๋ฐ์ ์ฌ์ฉํ์ฌ .gitignore ํ์ผ์ ํ๋ก์ ํธ์ ์ถ๊ฐํด ๋ณด๊ฒ ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด์ ์ง์ค์ ์๊ฐ: ์ฐ๋ฆฌ๋ Git ์ ์ฅ์์ ์ถ๊ฐํ๊ณ ์ถ์ง ์์ "์ถ์ ๋์ง ์์" ์ปดํ์ผ๋ ํด๋์ค GitTest.class๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
์ด์ .gitignore ํ์ผ์ ํจ๊ณผ๋ฅผ ํ์ธํด์ผ ํฉ๋๋ค.
์๋ฒฝํ! .gitignore +1 :)
๋ธ๋์น ์์
๋น์ฐํ ํ๋์ ๋ธ๋์น์์ ์์ ํ๋ ๊ฒ์ ๋จ๋ ๊ฐ๋ฐ์์๊ฒ๋ ๋ถํธํ๊ณ ํ ํ์ ์ฌ๋ฌ ์ฌ๋์ด ์์ ๋๋ ๋ถ๊ฐ๋ฅํฉ๋๋ค. ์ด๊ฒ์ด ์ฐ๋ฆฌ์๊ฒ ์ง์ ์ด ์๋ ์ด์ ์ ๋๋ค.
๋ถ๊ธฐ๋ ์ปค๋ฐ์ ๋ํ ์ด๋ ๊ฐ๋ฅํ ํฌ์ธํฐ์ผ ๋ฟ์ ๋๋ค.
์ด ํํธ์์๋ โโ์๋ก ๋ค๋ฅธ ๋ธ๋์น์์ ์์ ํ๋ ๋ฐฉ๋ฒ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ํ ๋ธ๋์น์์ ๋ค๋ฅธ ๋ธ๋์น๋ก ๋ณ๊ฒฝ ์ฌํญ์ ๋ณํฉํ๋ ๋ฐฉ๋ฒ, ๋ฐ์ํ ์ ์๋ ์ถฉ๋ ๋ฑ์ด ์์ต๋๋ค.
์ ์ฅ์์ ๋ชจ๋ ๋ธ๋์น ๋ชฉ๋ก์ ๋ณด๊ณ ์์ ์ด ์ํ ๋ธ๋์น๋ฅผ ์ดํดํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์์ฑํด์ผ ํฉ๋๋ค.
๋ง์คํฐ ๋ถ๊ธฐ๊ฐ ํ๋๋ง ์๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. ๊ทธ ์์ ๋ณํ๋ ์ฐ๋ฆฌ๊ฐ ๊ทธ ์์ ์์์ ๋ํ๋ ๋๋ค. ๊ทธ๊ฑด ๊ทธ๋ ๊ณ , "git status" ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ์ฐ๋ฆฌ๊ฐ ์ํ ๋ถ๊ธฐ๋ฅผ ์ฐพ์ ์๋ ์์ต๋๋ค.
๊ทธ๋ฐ ๋ค์ ๊ฐ์ง๋ฅผ ๋ง๋๋ ๋ช ๊ฐ์ง ์ต์ ์ด ์์ต๋๋ค(๋ ์์ ์ ์์ต๋๋ค. ์ ๊ฐ ์ฌ์ฉํ๋ ์ต์ ์ ๋๋ค).
- ์ฐ๋ฆฌ๊ฐ ์๋ ์ง์ ์ ๊ธฐ๋ฐ์ผ๋ก ์ ์ง์ ์ ๋ง๋ญ๋๋ค(99%์ ๊ฒฝ์ฐ).
- ํน์ ์ปค๋ฐ์ ๊ธฐ๋ฐ์ผ๋ก ๋ถ๊ธฐ ์์ฑ(์ฌ๋ก์ 1%)
ํน์ ์ปค๋ฐ์ ๊ธฐ๋ฐ์ผ๋ก ๋ถ๊ธฐ๋ฅผ ๋ง๋ค์ด ๋ด ์๋ค
์ปค๋ฐ์ ๊ณ ์ ์๋ณ์์ ์์กดํฉ๋๋ค. ๊ทธ๊ฒ์ ์ฐพ๊ธฐ ์ํด ๋ค์๊ณผ ๊ฐ์ด ์์ฑํฉ๋๋ค.
" added hello world..."๋ผ๋ ์ฃผ์์ผ๋ก ์ปค๋ฐ์ ๊ฐ์กฐ ํ์ํ์ต๋๋ค. ๊ณ ์ ์๋ณ์๋ 6c44e53d06228f888f2f454d3cb8c1c976dd73f8์ ๋๋ค. ์ด ์ปค๋ฐ์์ ์์ํ๋ "๊ฐ๋ฐ" ๋ถ๊ธฐ๋ฅผ ๋ง๋ค๊ณ ์ถ์ต๋๋ค. ์ด๋ฅผ ์ํด ๋ค์๊ณผ ๊ฐ์ด ์์ฑํฉ๋๋ค.
๋ง์คํฐ ๋ธ๋์น์ ์ฒ์ ๋ ์ปค๋ฐ๋ง์ผ๋ก ๋ธ๋์น๊ฐ ์์ฑ๋ฉ๋๋ค. ์ด๋ฅผ ํ์ธํ๊ธฐ ์ํด ๋จผ์ ๋ค๋ฅธ ๋ธ๋์น๋ก ์ ํํ๊ณ ์ปค๋ฐ ์๋ฅผ ํ์ธํฉ๋๋ค.
์์๋๋ก ์ปค๋ฐ์ด ๋ ๊ฐ ์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ์ฌ๊ธฐ ํฅ๋ฏธ๋ก์ด ์ ์ด ์์ต๋๋ค. ์ด ๋ถ๊ธฐ์๋ ์์ง .gitignore ํ์ผ์ด ์์ผ๋ฏ๋ก ์ปดํ์ผ๋ ํ์ผ(GitTest.class)์ด ์ด์ "์ถ์ ๋์ง ์์" ์ํ๋ก ๊ฐ์กฐ ํ์๋ฉ๋๋ค.
์ด์ ๋ค์๊ณผ ๊ฐ์ด ์์ฑํ์ฌ ๋ถ๊ธฐ๋ฅผ ๋ค์ ๊ฒํ ํ ์ ์์ต๋๋ค.
"๋ง์คํฐ"์ "๊ฐ๋ฐ"์ ๋ ๊ฐ์ง ๋ถ๊ธฐ๊ฐ ์์์ ์ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ํ์ฌ ๊ฐ๋ฐ ์ค์ ๋๋ค.
ํ์ฌ ๋ธ๋์น๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ธ๋์น๋ฅผ ๋ง๋ค์ด ๋ด ์๋ค.
๋ถ๊ธฐ๋ฅผ ๋ง๋๋ ๋ ๋ฒ์งธ ๋ฐฉ๋ฒ์ ๋ค๋ฅธ ๋ถ๊ธฐ์์ ๋ง๋๋ ๊ฒ์ ๋๋ค. ๋ง์คํฐ ๋ธ๋์น๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ธ๋์น๋ฅผ ์์ฑํ๋ ค๊ณ ํฉ๋๋ค. ๋จผ์ ์ ํํด์ผ ํ๋ฉฐ ๋ค์ ๋จ๊ณ๋ ์ ํญ๋ชฉ์ ๋ง๋๋ ๊ฒ์ ๋๋ค. ํ ๋ฒ ๋ณด์:
- git checkout master โ ๋ง์คํฐ ๋ธ๋์น๋ก ์ ํ
- git status โ ์ค์ ๋ก ๋ง์คํฐ ๋ธ๋์น์ ์๋์ง ํ์ธ
์ฌ๊ธฐ์์ ๋ง์คํฐ ๋ธ๋์น๋ก ์ ํํ๊ณ .gitignore ํ์ผ์ด ์ ์ฉ๋๊ณ ์ปดํ์ผ๋ ํด๋์ค๊ฐ ๋ ์ด์ "์ถ์ ๋์ง ์์"์ผ๋ก ๊ฐ์กฐ ํ์๋์ง ์๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
์ด์ ๋ง์คํฐ ๋ธ๋์น๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ ๋ธ๋์น๋ฅผ ์์ฑํฉ๋๋ค.
์ด ๋ถ๊ธฐ๊ฐ "๋ง์คํฐ"์ ๊ฐ์์ง ํ์คํ์ง ์์ ๊ฒฝ์ฐ "git log"๋ฅผ ์คํํ๊ณ ๋ชจ๋ ์ปค๋ฐ์ ๋ณด๋ฉด ์ฝ๊ฒ ํ์ธํ ์ ์์ต๋๋ค. ๋ค ๊ฐ๊ฐ ์์ด์ผํฉ๋๋ค.
๊ฐ๋ฑ ํด๊ฒฐ
์ถฉ๋์ด ๋ฌด์์ธ์ง ์์๋ณด๊ธฐ ์ ์ ํ ๊ฐ์ง๋ฅผ ๋ค๋ฅธ ๊ฐ์ง๋ก ๋ณํฉํ๋ ๊ฒ์ ๋ํด ์ด์ผ๊ธฐํด์ผ ํฉ๋๋ค.
์ด ๊ทธ๋ฆผ์ ํ ๋ถ๊ธฐ๋ฅผ ๋ค๋ฅธ ๋ถ๊ธฐ๋ก ๋ณํฉํ๋ ๊ณผ์ ์ ๋ณด์ฌ์ค๋๋ค.
์ฌ๊ธฐ์ ๋ณธ์ ์ด ์์ต๋๋ค. ์ด๋ ์์ ์์ ๋ณด์กฐ ๋ถ๊ธฐ๊ฐ ๊ธฐ๋ณธ ๋ถ๊ธฐ์์ ์์ฑ๋ ๋ค์ ์์ ๋ฉ๋๋ค. ์์ ์ด ์๋ฃ๋๋ฉด ํ ๋ถ๊ธฐ๋ฅผ ๋ค๋ฅธ ๋ถ๊ธฐ์ ๋ณํฉํด์ผ ํฉ๋๋ค.
์ด ์์์๋ feature/update-txt-files ๋ถ๊ธฐ๋ฅผ ๋ง๋ค์์ต๋๋ค. ์ง์ ์ด๋ฆ์์ ์ ์ ์๋ฏ์ด ํ ์คํธ๋ฅผ ์ ๋ฐ์ดํธํ๊ณ ์์ต๋๋ค.
์ด์ ์ด ์์ ์ ๋ํ ์ ์ปค๋ฐ์ ์์ฑํด์ผ ํฉ๋๋ค.
์ด์ feature/update-txt-files ๋ถ๊ธฐ๋ฅผ master๋ก ๋ณํฉํ๋ ค๋ฉด master๋ก ์ด๋ํ์ฌ "git merge feature/update-txt-files"๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค.
๊ทธ ๊ฒฐ๊ณผ ์ด์ master ๋ถ๊ธฐ์๋ feature/update-txt-files์ ์ถ๊ฐ๋ ์ปค๋ฐ๋ ํฌํจ๋ฉ๋๋ค.
์ด ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ผ๋ฏ๋ก ๊ธฐ๋ฅ ๋ถ๊ธฐ๋ฅผ ์ญ์ ํ ์ ์์ต๋๋ค. ์ด๋ฅผ ์ํด ๋ค์๊ณผ ๊ฐ์ด ์์ฑํฉ๋๋ค.
์ํฉ์ ๋ณต์กํ๊ฒ ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค. ์ด์ txt ํ์ผ์ ๋ค์ ๋ณ๊ฒฝํด์ผ ํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด์ ์ด ํ์ผ์ ๋ง์คํฐ ๋ธ๋์น์์๋ ๋ณ๊ฒฝ๋ฉ๋๋ค. ์ฆ, ๋ณ๋ ฌ๋ก ๋ณ๊ฒฝ๋ฉ๋๋ค. Git์ ์ ์ฝ๋๋ฅผ ๋ง์คํฐ ๋ธ๋์น์ ๋ณํฉํ๋ ค๊ณ ํ ๋ ์ํํ ์์ ์ ํ์ ํ ์ ์์ต๋๋ค.
master๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ ๋ถ๊ธฐ๋ฅผ ๋ง๋ค๊ณ text_resource.txt๋ฅผ ๋ณ๊ฒฝํ๊ณ ์ด ์์ ์ ๋ํ ์ปค๋ฐ์ ๋ง๋ญ๋๋ค.
... ํ์ผ์ ๋ณ๊ฒฝํฉ๋๋ค.
๋ง์คํฐ ๋ธ๋์น๋ก ์ด๋ํ๊ณ ๊ธฐ๋ฅ ๋ธ๋์น์์์ ๊ฐ์ ์ค์์ ์ด ํ ์คํธ ํ์ผ๋ ์ ๋ฐ์ดํธํฉ๋๋ค.
โฆ test_resource.txt๋ฅผ ์ ๋ฐ์ดํธํ์ต๋๋ค.
์ด์ ๊ฐ์ฅ ํฅ๋ฏธ๋ก์ด ์ ์ ๊ธฐ๋ฅ/์ถ๊ฐ ํค๋ ๋ถ๊ธฐ์์ ๋ง์คํฐ๋ก ๋ณ๊ฒฝ ์ฌํญ์ ๋ณํฉํด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๋ ๋ง์คํฐ ๋ธ๋์น์ ์์ผ๋ฏ๋ก ๋ค์๊ณผ ๊ฐ์ด ์์ฑํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
๊ทธ๋ฌ๋ ๊ทธ ๊ฒฐ๊ณผ test_resource.txt ํ์ผ์์ ์ถฉ๋์ด ๋ฐ์ํฉ๋๋ค.
์ฌ๊ธฐ์์ Git์ด ์ด ์ฝ๋๋ฅผ ๋ณํฉํ๋ ๋ฐฉ๋ฒ์ ์ค์ค๋ก ๊ฒฐ์ ํ ์ ์์์ ์ ์ ์์ต๋๋ค. ์ถฉ๋์ ๋จผ์ ํด๊ฒฐํ ๋ค์ ์ปค๋ฐ์ ์ํํด์ผ ํจ์ ์๋ ค์ค๋๋ค.
์ข์์. ํ ์คํธ ํธ์ง๊ธฐ์์ ์ถฉ๋์ด ์๋ ํ์ผ์ ์ด๊ณ ๋ค์์ ํ์ธํฉ๋๋ค.
์ฌ๊ธฐ์ Git์ด ์ํํ ์์ ์ ์ดํดํ๋ ค๋ฉด ๋ณ๊ฒฝ ๋ด์ฉ๊ณผ ์์น๋ฅผ ๊ธฐ์ตํ ๋ค์ ๋น๊ตํด์ผ ํฉ๋๋ค.
- ๋ง์คํฐ ๋ธ๋์น์ ์ด ์ค์ ์์๋ ๋ณ๊ฒฝ ์ฌํญ์ "<<<<<<< HEAD"์ "=======" ์ฌ์ด์ ์์ต๋๋ค.
- feature/add-header ๋ถ๊ธฐ์ ์์๋ ๋ณ๊ฒฝ ์ฌํญ์ "======="์ ">>>>>>> feature/add-header" ์ฌ์ด์ ์์ต๋๋ค.
์ด๊ฒ์ด Git์ด ํ์ผ์ ์ด ์์น์์ ๋ณํฉ์ ์ํํ๋ ๋ฐฉ๋ฒ์ ์์๋ผ ์ ์๋ค๊ณ ๋งํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์ด ์น์ ์ ์๋ก ๋ค๋ฅธ ๋ถ๊ธฐ์ ๋ ๋ถ๋ถ์ผ๋ก ๋๋๊ณ ๋ณํฉ ์ถฉ๋์ ์ง์ ํด๊ฒฐํ๋๋ก ์ด๋ํฉ๋๋ค.
๊ทธ๋ด ์ ์์ง. ๋๋ "ํค๋"๋ผ๋ ๋จ์ด ๋ง ๋จ๊ธฐ๊ณ ๋ชจ๋ ๊ฒ์ ์ ๊ฑฐํ๊ธฐ๋ก ๋๋ดํ๊ฒ ๊ฒฐ์ ํ์ต๋๋ค.
๋ณ๊ฒฝ ์ํ๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์ค๋ช ์ด ์ฝ๊ฐ ๋ค๋ฅผ ๊ฒ์ ๋๋ค. "์์ ๋จ" ์ํ๊ฐ ์๋๋ผ "๋ณํฉ ํด์ ๋จ" ์ํ์ ๋๋ค. ๊ทธ๋์ ์ฐ๋ฆฌ๋ ๋ค์ฏ ๋ฒ์งธ ์ํ๋ฅผ ์ธ๊ธํ ์ ์์์ต๋๊น? ๋๋ ์ด๊ฒ์ด ํ์ํ๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ๋ณด์:
์ฐ๋ฆฌ๋ ์ด๊ฒ์ด ํน๋ณํ๊ณ ํน์ดํ ๊ฒฝ์ฐ๋ผ๊ณ ์ค์ค๋ก ํ์ ํ ์ ์์ต๋๋ค. ๊ณ์ํ์:
์ค๋ช ์์ "git commit"๋ง ์์ฑํ๋๋ก ์ ์ํ๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. ๋ค์๊ณผ ๊ฐ์ด ์์ฑํด ๋ณด๊ฒ ์ต๋๋ค.
๊ทธ๋ ๊ฒ ํด์ ์ฝ์์์ ์ถฉ๋์ ํด๊ฒฐํ์ต๋๋ค.
๋ฌผ๋ก ์ด๊ฒ์ ํตํฉ ๊ฐ๋ฐ ํ๊ฒฝ์์ ์กฐ๊ธ ๋ ์ฝ๊ฒ ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด IntelliJ IDEA์์๋ ํ์ํ ๋ชจ๋ ์์ ์ ๋ฐ๋ก ์ํํ ์ ์๋๋ก ๋ชจ๋ ๊ฒ์ด ์ ์ค์ ๋์ด ์์ต๋๋ค. ๊ทธ๋ฌ๋ IDE๋ "๋ด๋ถ์ ์ผ๋ก" ๋ง์ ์์ ์ ์ํํ๋ฉฐ ์ ํํ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ์ดํดํ์ง ๋ชปํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ดํด๊ฐ ์์ผ๋ฉด ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
์๊ฒฉ ์ ์ฅ์ ์์
๋ง์ง๋ง ๋จ๊ณ๋ ์๊ฒฉ ์ ์ฅ์ ์์ ์ ํ์ํ ๋ช ๊ฐ์ง ์ถ๊ฐ ๋ช ๋ น์ ํ์ ํ๋ ๊ฒ์ ๋๋ค.
๋ด๊ฐ ๋งํ๋ฏ์ด ์๊ฒฉ ์ ์ฅ์๋ ์ ์ฅ์๊ฐ ์ ์ฅ๋๊ณ ๋ณต์ ํ ์ ์๋ ์ฅ์์ ๋๋ค.
์ด๋ค ์ข ๋ฅ์ ์๊ฒฉ ์ ์ฅ์๊ฐ ์์ต๋๊น? ์:
- GitHub๋ ๋ฆฌํฌ์งํ ๋ฆฌ ๋ฐ ๊ณต๋ ๊ฐ๋ฐ์ ์ํ ์ต๋ ์คํ ๋ฆฌ์ง ํ๋ซํผ์ ๋๋ค.
- GitLab์ ์คํ ์์ค๋ฅผ ์ฌ์ฉํ๋ DevOps ์๋ช ์ฃผ๊ธฐ๋ฅผ ์ํ ์น ๊ธฐ๋ฐ ๋๊ตฌ์ ๋๋ค. ์์ฒด ์ํค, ๋ฒ๊ทธ ์ถ์ ์์คํ , CI/CD ํ์ดํ๋ผ์ธ ๋ฐ ๊ธฐํ ๊ธฐ๋ฅ์ผ๋ก ์ฝ๋ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ Git ๊ธฐ๋ฐ ์์คํ ์ ๋๋ค.
- BitBucket์ Mercurial ๋ฐ Git ๋ฒ์ ์ ์ด ์์คํ ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ํ๋ก์ ํธ ํธ์คํ ๋ฐ ๊ณต๋ ๊ฐ๋ฐ์ ์ํ ์น ์๋น์ค์ ๋๋ค. ํ๋ ๋ฌด๋ฃ ๊ฐ์ธ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ์ ๊ณตํ๋ค๋ ์ ์์ GitHub๋ณด๋ค ํฐ ์ด์ ์ด ์์์ต๋๋ค. ์๋ ์ GitHub๋ ์ด ๊ธฐ๋ฅ์ ๋ชจ๋์๊ฒ ๋ฌด๋ฃ๋ก ์๊ฐํ์ต๋๋ค.
- ๋ฑ๋ฑโฆ
์๊ฒฉ ๋ฆฌํฌ์งํ ๋ฆฌ๋ก ์์ ํ ๋ ๊ฐ์ฅ ๋จผ์ ํด์ผ ํ ์ผ์ ํ๋ก์ ํธ๋ฅผ ๋ก์ปฌ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ณต์ ํ๋ ๊ฒ์ ๋๋ค.
์ด๋ฅผ ์ํด ๋ก์ปฌ์์ ๋ง๋ ํ๋ก์ ํธ๋ฅผ ๋ด๋ณด๋์ต๋๋ค. ์ด์ ๋๊ตฌ๋ ๋ค์๊ณผ ๊ฐ์ด ์์ฑํ์ฌ ์ง์ ๋ณต์ ํ ์ ์์ต๋๋ค.
์ด์ ํ๋ก์ ํธ์ ์์ ํ ๋ก์ปฌ ์ฌ๋ณธ์ด ์์ต๋๋ค. ํ๋ก์ ํธ์ ๋ก์ปฌ ๋ณต์ฌ๋ณธ์ด ์ต์ ์ธ์ง ํ์ธํ๋ ค๋ฉด ๋ค์์ ์์ฑํ์ฌ ํ๋ก์ ํธ๋ฅผ ๊ฐ์ ธ์์ผ ํฉ๋๋ค.
์ฐ๋ฆฌ์ ๊ฒฝ์ฐ ํ์ฌ ์๊ฒฉ ์ ์ฅ์์ ์๋ฌด ๊ฒ๋ ๋ณ๊ฒฝ๋์ง ์์์ผ๋ฏ๋ก ์๋ต์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ด๋ฏธ ์ต์ ์ ๋๋ค.
๊ทธ๋ฌ๋ ์๊ฒฉ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๋ณ๊ฒฝํ๋ฉด ๋ก์ปฌ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๊ฐ์ ธ์จ ํ ์ ๋ฐ์ดํธ๋ฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก ๋ง์ง๋ง ๋ช ๋ น์ ๋ฐ์ดํฐ๋ฅผ ์๊ฒฉ ์ ์ฅ์๋ก ํธ์ํ๋ ๊ฒ์ ๋๋ค. ๋ก์ปฌ์์ ์ํํ ์์ ์ ์๊ฒฉ ์ ์ฅ์๋ก ๋ณด๋ด๋ ค๋ฉด ๋จผ์ ๋ก์ปฌ์์ ์ ์ปค๋ฐ์ ์์ฑํด์ผ ํฉ๋๋ค. ์ด๋ฅผ ์์ฐํ๊ธฐ ์ํด ํ ์คํธ ํ์ผ์ ๋ค๋ฅธ ๊ฒ์ ์ถ๊ฐํด ๋ณด๊ฒ ์ต๋๋ค.
์ด์ ์ฐ๋ฆฌ์๊ฒ ๊ฝค ํํ ์ผ์ด ์์ต๋๋ค. ์ด ์์ ์ ๋ํ ์ปค๋ฐ์ ๋ง๋ญ๋๋ค.
์ด๋ฅผ ์๊ฒฉ ์ ์ฅ์๋ก ํธ์ํ๋ ๋ช ๋ น์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ง๊ธ์ ๊ทธ๊ฒ ๋ค์ผ!
์ ์ฉํ ๋งํฌ |
---|
|
2. IntelliJ IDEA์์ Git์ผ๋ก ์์ ํ๋ ๋ฐฉ๋ฒ
์ด ํํธ์์๋ โโIntelliJ IDEA์์ Git์ผ๋ก ์์ ํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์๋๋ค.
ํ์ ์ ๋ ฅ:
- ์ฝ๊ณ , ๋ฐ๋ผํ๊ณ , ์ด์ ๋ถ๋ถ์ ์ดํดํ์ญ์์ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ชจ๋ ๊ฒ์ด ์ค์ ๋๊ณ ์ฌ์ฉํ ์ค๋น๊ฐ ๋์๋์ง ํ์ธํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
- IntelliJ IDEA๋ฅผ ์ค์นํฉ๋๋ค. ๋ชจ๋ ๊ฒ์ด ์ฌ๊ธฐ์ ์์๋๋ก ์์ด์ผํฉ๋๋ค :)
- ์์ ํ ์๋ฌ์ ๋ฌ์ฑํ๊ธฐ ์ํด ํ ์๊ฐ์ ํ ๋นํ์ญ์์ค.
Git์ ๋ํ ๊ธฐ์ฌ์์ ์ฌ์ฉํ ๋ฐ๋ชจ ํ๋ก์ ํธ ๋ก ์์ ํด ๋ด ์๋ค .
ํ๋ก์ ํธ๋ฅผ ๋ก์ปฌ๋ก ๋ณต์
์ฌ๊ธฐ์๋ ๋ ๊ฐ์ง ์ต์ ์ด ์์ต๋๋ค.
- ์ด๋ฏธ GitHub ๊ณ์ ์ด ์๊ณ ๋์ค์ ๋ฌด์ธ๊ฐ๋ฅผ ํธ์ํ๋ ค๋ ๊ฒฝ์ฐ ํ๋ก์ ํธ๋ฅผ ํฌํฌํ๊ณ ์์ ์ ๋ณต์ฌ๋ณธ์ ๋ณต์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ถ๊ธฐ ์์ ํ๋ฆ์ ์๋ผ๋ ์ ๋ชฉ ์๋์ ๋ค๋ฅธ ๋ฌธ์์์ ๋ถ๊ธฐ ์์ฑ ๋ฐฉ๋ฒ์ ๋ํด ์ฝ์ ์ ์์ต๋๋ค .
- ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๋ณต์ ํ๊ณ ์ ์ฒด๋ฅผ ์๋ฒ์ ํธ์ํ๋ ๊ธฐ๋ฅ ์์ด ๋ก์ปฌ์์ ๋ชจ๋ ์์ ์ ์ํํฉ๋๋ค.
GitHub์์ ํ๋ก์ ํธ๋ฅผ ๋ณต์ ํ๋ ค๋ฉด ํ๋ก์ ํธ ๋งํฌ๋ฅผ ๋ณต์ฌํ์ฌ IntelliJ IDEA์ ์ ๋ฌํด์ผ ํฉ๋๋ค.
-
ํ๋ก์ ํธ ์ฃผ์ ๋ณต์ฌ:
-
IntelliJ IDEA๋ฅผ ์ด๊ณ "๋ฒ์ ์ ์ด์์ ๊ฐ์ ธ์ค๊ธฐ"๋ฅผ ์ ํํฉ๋๋ค.
-
ํ๋ก์ ํธ ์ฃผ์๋ฅผ ๋ณต์ฌํ์ฌ ๋ถ์ฌ๋ฃ๊ธฐ:
-
IntelliJ IDEA ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ผ๋ ๋ฉ์์ง๊ฐ ํ์๋ฉ๋๋ค. ์ ์ ์๋ฝ:
-
๋น๋ ์์คํ ์ด ์์ผ๋ฏ๋ก "๊ธฐ์กด ์์ค์์ ํ๋ก์ ํธ ๋ง๋ค๊ธฐ"๋ฅผ ์ ํํฉ๋๋ค.
-
๋ค์์ผ๋ก ์๋ฆ๋ค์ด ํ๋ฉด์ ๋ณผ ์ ์์ต๋๋ค.
๋ณต์ ๋ฅผ ์์๋์ผ๋ ์ด์ ๋๋ฌ๋ณผ ์ ์์ต๋๋ค.
Git UI๋ก์์ IntelliJ IDEA ์ฒซ์ธ์
๋ณต์ ๋ ํ๋ก์ ํธ๋ฅผ ์์ธํ ์ดํด๋ณด์ญ์์ค. ์ด๋ฏธ ๋ฒ์ ์ ์ด ์์คํ ์ ๋ํ ๋ง์ ์ ๋ณด๋ฅผ ์ป์ ์ ์์ต๋๋ค.
๋จผ์ ์ผ์ชฝ ํ๋จ ๋ชจ์๋ฆฌ์ ๋ฒ์ ์ ์ด ์ฐฝ์ด ์์ต๋๋ค. ์ฌ๊ธฐ์์ ๋ชจ๋ ๋ก์ปฌ ๋ณ๊ฒฝ ์ฌํญ์ ์ฐพ๊ณ ์ปค๋ฐ ๋ชฉ๋ก์ ์ป์ ์ ์์ต๋๋ค("git log"์ ์ ์ฌ).
Log์ ๋ํ ํ ๋ก ์ผ๋ก ๋์ด ๊ฐ์๋ค. ๊ฐ๋ฐ์ด ์ด๋ป๊ฒ ์งํ๋์๋์ง ์ ํํ ์ดํดํ๋ ๋ฐ ๋์์ด ๋๋ ํน์ ์๊ฐํ๊ฐ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด txt ์ปค๋ฐ์ ํค๋๊ฐ ์ถ๊ฐ๋ ์ ๋ถ๊ธฐ๊ฐ ์์ฑ๋ ๋ค์ ๋ง์คํฐ ๋ถ๊ธฐ๋ก ๋ณํฉ๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. ์ปค๋ฐ์ ํด๋ฆญํ๋ฉด ์ค๋ฅธ์ชฝ ๋ชจ์๋ฆฌ์์ ์ปค๋ฐ์ ๋ํ ๋ชจ๋ ์ ๋ณด(๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ ๋ฐ ๋ฉํ๋ฐ์ดํฐ)๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
๋ํ ์ค์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ณผ ์ ์์ต๋๋ค. ๋ํ ๊ทธ๊ณณ์์ ๊ฐ๋ฑ์ด ํด๊ฒฐ๋์์์ ์ ์ ์์ต๋๋ค. IDEA๋ ์ด๊ฒ์ ์์ฃผ ์ ๋ณด์ฌ์ค๋๋ค.
์ด ์ปค๋ฐ ์ค์ ๋ณ๊ฒฝ๋ ํ์ผ์ ๋ ๋ฒ ํด๋ฆญํ๋ฉด ์ถฉ๋์ด ์ด๋ป๊ฒ ํด๊ฒฐ๋์๋์ง ํ์ธํ ์ ์์ต๋๋ค.
์ผ์ชฝ๊ณผ ์ค๋ฅธ์ชฝ์๋ ํ๋๋ก ๋ณํฉํด์ผ ํ๋ ๋์ผํ ํ์ผ์ ๋ ๊ฐ์ง ๋ฒ์ ์ด ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ค๊ฐ์ ์ต์ข ๋ณํฉ ๊ฒฐ๊ณผ๊ฐ ์์ต๋๋ค.
ํ๋ก์ ํธ์ ๋ถ๊ธฐ, ์ปค๋ฐ ๋ฐ ์ฌ์ฉ์๊ฐ ๋ง์ ๊ฒฝ์ฐ ๋ถ๊ธฐ, ์ฌ์ฉ์ ๋ฐ ๋ ์ง๋ณ๋ก ๋ณ๋๋ก ๊ฒ์ํด์ผ ํฉ๋๋ค.
์์ํ๊ธฐ ์ ์ ์ฐ๋ฆฌ๊ฐ ์ํ ์ง์ ์ ์ดํดํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ๋ ๊ฒ๋ ์ข์ต๋๋ค.
์ค๋ฅธ์ชฝ ํ๋จ์ "Git: master"๋ผ๋ ๋ฒํผ์ด ์์ต๋๋ค. "Git:" ๋ค์ ์ค๋ ๊ฒ์ด ํ์ฌ ๋ธ๋์น์ ๋๋ค. ๋ฒํผ์ ํด๋ฆญํ๋ฉด ๋ค๋ฅธ ๋ธ๋์น๋ก ์ ํํ๊ณ , ์ ๋ธ๋์น๋ฅผ ์์ฑํ๊ณ , ๊ธฐ์กด ๋ธ๋์น์ ์ด๋ฆ์ ๋ฐ๊พธ๋ ๋ฑ ๋ง์ ์ ์ฉํ ์์ ์ ์ํํ ์ ์์ต๋๋ค.
๋ฆฌํฌ์งํ ๋ฆฌ ์์
์ ์ฉํ ๋จ์ถํค
ํฅํ ์์ ์ ์ํด ๋ช ๊ฐ์ง ๋งค์ฐ ์ ์ฉํ ํซํค๋ฅผ ๊ธฐ์ตํด์ผ ํฉ๋๋ค.
- CTRL+T โ ์๊ฒฉ ์ ์ฅ์์์ ์ต์ ๋ณ๊ฒฝ ์ฌํญ์ ๊ฐ์ ธ์ต๋๋ค(git pull).
- CTRL+K โ ์ปค๋ฐ์ ์์ฑํ๊ฑฐ๋ ํ์ฌ ๋ณ๊ฒฝ ์ฌํญ์ ๋ชจ๋ ํ์ธํฉ๋๋ค. ์ฌ๊ธฐ์๋ ์ถ์ ๋์ง ์์ ํ์ผ๊ณผ ์์ ๋ ํ์ผ(git commit)์ด ๋ชจ๋ ํฌํจ๋ฉ๋๋ค.
- CTRL+SHIFT+K โ ๋ณ๊ฒฝ ์ฌํญ์ ์๊ฒฉ ์ ์ฅ์๋ก ํธ์ํ๋ ๋ช ๋ น์ ๋๋ค. ๋ก์ปฌ์์ ์์ฑ๋๊ณ ์์ง ์๊ฒฉ ์ ์ฅ์์ ์๋ ๋ชจ๋ ์ปค๋ฐ์ด ํธ์๋ฉ๋๋ค(git push).
- ALT+CTRL+Z โ ํน์ ํ์ผ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ก์ปฌ ์ ์ฅ์์์ ์์ฑ๋ ๋ง์ง๋ง ์ปค๋ฐ ์ํ๋ก ๋กค๋ฐฑํฉ๋๋ค. ์ผ์ชฝ ์๋จ ๋ชจ์๋ฆฌ์์ ์ ์ฒด ํ๋ก์ ํธ๋ฅผ ์ ํํ๋ฉด ๋ชจ๋ ํ์ผ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋กค๋ฐฑํ ์ ์์ต๋๋ค.
์ฐ๋ฆฌ๋ ๋ฌด์์ ์ํฉ๋๊น?
์์ ์ ์๋ฃํ๋ ค๋ฉด ๋ชจ๋ ๊ณณ์์ ์ฌ์ฉ๋๋ ๊ธฐ๋ณธ ์๋๋ฆฌ์ค๋ฅผ ๋ง์คํฐํด์ผ ํฉ๋๋ค.
๋ชฉํ๋ ๋ณ๋์ ๋ธ๋์น์์ ์ ๊ธฐ๋ฅ์ ๊ตฌํํ ๋ค์ ์๊ฒฉ ์ ์ฅ์๋ก ํธ์ํ๋ ๊ฒ์ ๋๋ค(๊ทธ๋ฐ ๋ค์ ๋ฉ์ธ ๋ธ๋์น์ ๋ํ ํ ์์ฒญ๋ ์์ฑํด์ผ ํ์ง๋ง ์ด ๊ณผ์ ์ ๋ฒ์๋ฅผ ๋ฒ์ด๋ฉ๋๋ค).
์ด๋ฅผ ์ํด ๋ฌด์์ด ํ์ํฉ๋๊น?
-
๊ธฐ๋ณธ ๋ถ๊ธฐ(์: "๋ง์คํฐ")์ ๋ชจ๋ ํ์ฌ ๋ณ๊ฒฝ ์ฌํญ์ ๊ฐ์ ธ์ต๋๋ค.
-
์ด ๊ธฐ๋ณธ ๋ถ๊ธฐ์์ ์์ ์ ์ํ ๋ณ๋์ ๋ถ๊ธฐ๋ฅผ ๋ง๋ญ๋๋ค.
-
์๋ก์ด ๊ธฐ๋ฅ์ ๊ตฌํํฉ๋๋ค.
-
๋ฉ์ธ ๋ธ๋์น๋ก ์ด๋ํ์ฌ ์์ ํ๋ ๋์ ์๋ก์ด ๋ณ๊ฒฝ ์ฌํญ์ด ์๋์ง ํ์ธํ์ญ์์ค. ๊ทธ๋ ์ง ์๋ค๋ฉด ๋ชจ๋ ๊ฒ์ด ์ ์์ ๋๋ค. ๊ทธ๋ฌ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์์ผ๋ฉด ๋ค์์ ์ํํฉ๋๋ค. ์์ ๋ธ๋์น๋ก ์ด๋ํ์ฌ ๊ธฐ๋ณธ ๋ธ๋์น์์ ์ฐ๋ฆฌ ๋ธ๋์น๋ก ๋ณ๊ฒฝ ์ฌํญ์ ๋ฆฌ๋ฒ ์ด์คํฉ๋๋ค . ๋ชจ๋ ๊ฒ์ด ์๋๋ฉด ํ๋ฅญํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ถฉ๋์ด ์์ ๊ฐ๋ฅ์ฑ์ ์ ์ ์ผ๋ก ์์ต๋๋ค. ๊ทธ๋ด ๋ ์๊ฒฉ ์ ์ฅ์์์ ์๊ฐ์ ๋ญ๋นํ์ง ์๊ณ ๋ฏธ๋ฆฌ ํด๊ฒฐํ ์ ์์ต๋๋ค.
์ ์ด๋ ๊ฒ ํด์ผ ํ๋์ง ๊ถ๊ธํ์์ฃ ? ๋ถ๊ธฐ๋ฅผ ๋ก์ปฌ ๋ฆฌํฌ์งํ ๋ฆฌ๋ก ํธ์ํ ํ ๋ฐ์ํ๋ ์ถฉ๋์ ๋ฐฉ์งํ๋ ์ข์ ๋งค๋์ ๋๋ค(๋ฌผ๋ก ์ถฉ๋์ด ๊ณ์ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ ์์ง๋ง ํจ์ฌ ์์์ง๋๋ค ) .
-
๋ณ๊ฒฝ ์ฌํญ์ ์๊ฒฉ ์ ์ฅ์๋ก ํธ์ํฉ๋๋ค.
์๊ฒฉ ์๋ฒ์์ ๋ณ๊ฒฝ ์ฌํญ์ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น?
์ ์ปค๋ฐ์ผ๋ก README์ ์ค๋ช ์ ์ถ๊ฐํ์ผ๋ฉฐ ์ด๋ฌํ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ๋ ค๊ณ ํฉ๋๋ค. ๋ก์ปฌ ๋ฆฌํฌ์งํ ๋ฆฌ์ ์๊ฒฉ ๋ฆฌํฌ์งํ ๋ฆฌ ๋ชจ๋์์ ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ ๋ณํฉ๊ณผ ๋ฆฌ๋ฒ ์ด์ค ์ค์์ ์ ํํ๋๋ก ์ด๋๋ฉ๋๋ค. ์ฐ๋ฆฌ๋ ๋ณํฉ์ ์ ํํฉ๋๋ค.
CTRL+T๋ฅผ ์ ๋ ฅํฉ๋๋ค .
์ด์ README๊ฐ ์ด๋ป๊ฒ ๋ณ๊ฒฝ๋์๋์ง, ์ฆ ์๊ฒฉ ์ ์ฅ์์์ ๊ฐ์ ธ์จ ๋ณ๊ฒฝ ์ฌํญ์ ๋ณผ ์ ์์ผ๋ฉฐ ์ค๋ฅธ์ชฝ ์๋ ๋ชจ์๋ฆฌ์์ ์๋ฒ์์ ์จ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํ ๋ชจ๋ ์ธ๋ถ ์ ๋ณด๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
๋ง์คํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ ๋ถ๊ธฐ ๋ง๋ค๊ธฐ
์ฌ๊ธฐ์์๋ ๋ชจ๋ ๊ฒ์ด ๊ฐ๋จํฉ๋๋ค.
์ค๋ฅธ์ชฝ ํ๋จ์ผ๋ก ์ด๋ํ์ฌ Git: master ๋ฅผ ํด๋ฆญํฉ๋๋ค . + ์ ๋ถ๊ธฐ๋ฅผ ์ ํํฉ๋๋ค .
Checkout branch ํ์ธ๋์ ์ ํ๋ ์ํ๋ก ๋๊ณ ์ ์ง์ ์ ์ด๋ฆ์ ์ ๋ ฅํฉ๋๋ค. ์ฐ๋ฆฌ์ ๊ฒฝ์ฐ: ์ด๊ฒ์ readme-improver ์ ๋๋ค .Git: master ๋ Git: readme-improver ๋ก ๋ณ๊ฒฝ๋ฉ๋๋ค .
๋ณ๋ ฌ ์์ ์ ์๋ฎฌ๋ ์ด์ ํด ๋ด ์๋ค
์ถฉ๋์ด ๋ํ๋๋ ค๋ฉด ๋๊ตฐ๊ฐ ์ถฉ๋์ ๋ง๋ค์ด์ผ ํฉ๋๋ค.
๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ์๋ก์ด ์ปค๋ฐ์ผ๋ก README๋ฅผ ํธ์งํ์ฌ ๋ณ๋ ฌ ์์ ์ ์๋ฎฌ๋ ์ด์ ํฉ๋๋ค. ๋ง์น ์ฐ๋ฆฌ๊ฐ ์์ ํ๋ ๋์ ๋๊ตฐ๊ฐ๊ฐ ๋์ผํ ํ์ผ์ ๋ณ๊ฒฝํ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค. ๊ทธ ๊ฒฐ๊ณผ๋ ๊ฐ๋ฑ์ด ๋ ๊ฒ์ ๋๋ค. 10ํ์์ "fully"๋ผ๋ ๋จ์ด๋ฅผ ์ ๊ฑฐํ๊ฒ ์ต๋๋ค.
๊ธฐ๋ฅ ๊ตฌํ
์ฐ๋ฆฌ์ ์๋ฌด๋ README๋ฅผ ๋ณ๊ฒฝํ๊ณ ์ ๊ธฐ์ฌ์ ์ค๋ช ์ ์ถ๊ฐํ๋ ๊ฒ์ ๋๋ค. ์ฆ, Git์์์ ์์ ์ IntelliJ IDEA๋ฅผ ๊ฑฐ์นฉ๋๋ค. ์ด๊ฑฐ ์ถ๊ฐ ํด๋ด:
๋ณ๊ฒฝ์ด ์๋ฃ๋์์ต๋๋ค. ์ด์ ์ปค๋ฐ์ ๋ง๋ค ์ ์์ต๋๋ค. CTRL+K ๋ฅผ ๋๋ฅด๋ฉด ๋ค์์ด ์ ๊ณต๋ฉ๋๋ค.
์ปค๋ฐ์ ์์ฑํ๊ธฐ ์ ์ ์ด ์ฐฝ์์ ์ ๊ณตํ๋ ๋ด์ฉ์ ์์ธํ ์ดํด๋ณผ ํ์๊ฐ ์์ต๋๋ค.
์ปค๋ฐ ๋ฉ์์ง ์น์ ์์ ์ปค๋ฐ๊ณผ ๊ด๋ จ๋ ํ ์คํธ๋ฅผ ์์ฑํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์์ฑํ๋ ค๋ฉด Commit ์ ํด๋ฆญํด์ผ ํฉ๋๋ค .
README๊ฐ ๋ณ๊ฒฝ๋์๋ค๊ณ ์์ฑํ๊ณ ์ปค๋ฐ์ ์์ฑํฉ๋๋ค. ์ปค๋ฐ ์ด๋ฆ๊ณผ ํจ๊ป ์ผ์ชฝ ํ๋จ ๋ชจ์๋ฆฌ์ ๊ฒฝ๊ณ ํ์ ์ด ๋ํ๋ฉ๋๋ค.
๋ฉ์ธ ๋ธ๋์น ๋ณ๊ฒฝ ์ฌ๋ถ ํ์ธ
์ฐ๋ฆฌ๋ ์๋ฌด๋ฅผ ์์ํ์ต๋๋ค. ํจ๊ณผ๊ฐ์๋ค. ์ฐ๋ฆฌ๋ ํ ์คํธ๋ฅผ ์์ฑํ์ต๋๋ค. ๋ชจ๋ ๊ฒ์ด ๊ด์ฐฎ์ต๋๋ค. ํ์ง๋ง ์๋ฒ์ ํธ์ํ๊ธฐ ์ ์ ๊ทธ ๋์ ๋ฉ์ธ ๋ธ๋์น์ ๋ณ๊ฒฝ ์ฌํญ์ด ์์๋์ง ํ์ธํด์ผ ํฉ๋๋ค. ์ด๋ป๊ฒ ๊ทธ๋ฐ ์ผ์ด ์ผ์ด๋ ์ ์์ต๋๊น? ์์ฃผ ์ฝ๊ฒ: ๋๊ตฐ๊ฐ ๋น์ ๋ณด๋ค ์์ ์ ๋์ค์ ๋ฐ๊ณ ๊ทธ ๋๊ตฐ๊ฐ๋ ๋น์ ์ด ์์ ์ ์๋ฃํ๋ ๊ฒ๋ณด๋ค ๋ ๋นจ๋ฆฌ ์๋ฃํฉ๋๋ค.
๋ฐ๋ผ์ ๋ง์คํฐ ๋ธ๋์น๋ก ์ด๋ํด์ผ ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด ์๋ ์คํฌ๋ฆฐ์ท์ ์ค๋ฅธ์ชฝ ํ๋จ์ ํ์๋ ์์ ์ ์ํํด์ผ ํฉ๋๋ค.
๋ง์คํฐ ๋ธ๋์น์์ CTRL+T๋ฅผ ๋๋ฌ ์๊ฒฉ ์๋ฒ์์ ์ต์ ๋ณ๊ฒฝ ์ฌํญ์ ๊ฐ์ ธ์ต๋๋ค. ๋ณ๊ฒฝ ๋ด์ฉ์ ๋ณด๋ฉด ๋ฌด์จ ์ผ์ด ์ผ์ด๋ฌ๋์ง ์ฝ๊ฒ ์ ์ ์์ต๋๋ค.
"fully"๋ผ๋ ๋จ์ด๊ฐ ์ ๊ฑฐ๋์์ต๋๋ค. ๋ง์ผํ ๋ด๋น์๊ฐ ๊ทธ๋ ๊ฒ ์์ฑํ๋ฉด ์ ๋๋ค๊ณ ํ๋จํ๊ณ ๊ฐ๋ฐ์์๊ฒ ์ ๋ฐ์ดํธ ์์ ์ ๋ถ์ฌํ์ ์๋ ์์ต๋๋ค.
์ด์ ์ต์ ๋ฒ์ ์ ๋ง์คํฐ ๋ธ๋์น์ ๋ํ ๋ก์ปฌ ๋ณต์ฌ๋ณธ์ด ์๊ฒผ์ต๋๋ค. readme-improver ๋ก ๋์๊ฐ์ญ์์ค .
์ด์ ๋ง์คํฐ ๋ธ๋์น์์ ์ฐ๋ฆฌ ๋ธ๋์น๋ก ๋ณ๊ฒฝ ์ฌํญ์ ๋ฆฌ๋ฒ ์ด์คํด์ผ ํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ด๋ ๊ฒ ํฉ๋๋ค:
๋ชจ๋ ์์ ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ํํ๊ณ ์ ๋ฅผ ๋ฐ๋ผํ๋ค๋ฉด ๊ฒฐ๊ณผ๋ README ํ์ผ์ ์ถฉ๋์ด ํ์๋์ด์ผ ํฉ๋๋ค.
์ฌ๊ธฐ์๋ ์ดํดํ๊ณ ํก์ํด์ผ ํ ๋ง์ ์ ๋ณด๊ฐ ์์ต๋๋ค. ์ฌ๊ธฐ์ ์ถฉ๋์ด ์๋ ํ์ผ ๋ชฉ๋ก(์ด ๊ฒฝ์ฐ ํ๋์ ํ์ผ)์ด ํ์๋ฉ๋๋ค. ์ธ ๊ฐ์ง ์ต์ ์ค์์ ์ ํํ ์ ์์ต๋๋ค.
- accept yours โ readme-improver์ ๋ณ๊ฒฝ ์ฌํญ๋ง ์๋ฝํฉ๋๋ค.
- accept theirs โ ๋ง์คํฐ์ ๋ณ๊ฒฝ ์ฌํญ๋ง ์๋ฝํฉ๋๋ค.
- ๋ณํฉ โ ๋ณด๊ดํ ํญ๋ชฉ๊ณผ ๋ฒ๋ฆด ํญ๋ชฉ์ ์ง์ ์ ํํ์ธ์.
๋ฌด์์ด ๋ณ๊ฒฝ๋์๋์ง๋ ๋ช ํํ์ง ์์ต๋๋ค. ๋ง์คํฐ ๋ธ๋์น์ ๋ณ๊ฒฝ ์ฌํญ์ด ์๋ ๊ฒฝ์ฐ ํด๋น ๋ธ๋์น์ ๋ณ๊ฒฝ ์ฌํญ์ด ํ์ํ๋ฏ๋ก ๋จ์ํ ๋ณ๊ฒฝ ์ฌํญ์ ์๋ฝํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ณํฉ์ ์ ํํฉ๋๋ค .
์ฌ๊ธฐ์ ์ฐ๋ฆฌ๋ ์ธ ๋ถ๋ถ์ด ์์์ ์ ์ ์์ต๋๋ค.
- ์ด๊ฒ์ readme-improver์ ๋ณ๊ฒฝ ์ฌํญ์ ๋๋ค.
- ๋ณํฉ๋ ๊ฒฐ๊ณผ์ ๋๋ค. ํ์ฌ๋ก์๋ ๋ณ๊ฒฝ ์ด์ ์ ์กด์ฌํ๋ ๊ฒ์ ๋๋ค.
- ๋ง์คํฐ ๋ธ๋์น์ ๋ณ๊ฒฝ ์ฌํญ.
์ฐ๋ฆฌ๋ ๋ชจ๋๊ฐ ๋ง์กฑํ ํตํฉ๋ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค. ๋ณ๊ฒฝํ๊ธฐ ์ ์ ๋ณ๊ฒฝ๋ ๋ด์ฉ์ ๊ฒํ ํ ๊ฒฐ๊ณผ ๋จ์ํ "fully"๋ผ๋ ๋จ์ด๊ฐ ์ ๊ฑฐ๋์์์ ์ ์ ์์ต๋๋ค. ๊ทธ๋, ๋ฌธ์ ์์ด! ์ฆ, ๋ณํฉ๋ ๊ฒฐ๊ณผ์์๋ ์ ๊ฑฐํ ๋ค์ ๋ณ๊ฒฝ ์ฌํญ์ ์ถ๊ฐํฉ๋๋ค. ๋ณํฉ๋ ๊ฒฐ๊ณผ๋ฅผ ์์ ํ๋ฉด ์ ์ฉ ์ ํด๋ฆญํ ์ ์์ต๋๋ค .
๊ทธ๋ฐ ๋ค์ ์๋ฆผ์ด ํ์ ๋์ด ๋ฆฌ๋ฒ ์ด์ค๊ฐ ์ฑ๊ณตํ์์ ์๋ ค์ค๋๋ค.
๊ฑฐ๊ธฐ! IntelliJ IDEA๋ฅผ ํตํด ์ฒซ ๋ฒ์งธ ์ถฉ๋์ ํด๊ฒฐํ์ต๋๋ค.
๋ณ๊ฒฝ ์ฌํญ์ ์๊ฒฉ ์๋ฒ๋ก ํธ์
๋ค์ ๋จ๊ณ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์๊ฒฉ ์๋ฒ์ ํธ์ํ๊ณ ํ ์์ฒญ์ ์์ฑํ๋ ๊ฒ์ ๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด CTRL+SHIFT+K ๋ฅผ ๋๋ฅด๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค . ๊ทธ๋ฐ ๋ค์ ๋ค์์ ์ป์ต๋๋ค.
์ผ์ชฝ์๋ ์๊ฒฉ ์ ์ฅ์๋ก ํธ์๋์ง ์์ ์ปค๋ฐ ๋ชฉ๋ก์ด ์์ต๋๋ค. ์ค๋ฅธ์ชฝ์๋ ๋ณ๊ฒฝ๋ ๋ชจ๋ ํ์ผ์ด ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ ๋ค์ผ! ํธ์๋ฅผ ๋๋ฅด์๋ฉด ํ๋ณต์ ๊ฒฝํํ์ค ์ ์์ต๋๋ค :)
ํธ์๊ฐ ์ฑ๊ณตํ๋ฉด ์ค๋ฅธ์ชฝ ํ๋จ์ ๋ค์๊ณผ ๊ฐ์ ์๋ฆผ์ด ํ์๋ฉ๋๋ค.
๋ณด๋์ค: ํ ๋ฆฌํ์คํธ ์์ฑ
GitHub ๋ฆฌํฌ์งํ ๋ฆฌ๋ก ์ด๋ํ๋ฉด GitHub๊ฐ ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๊ฒ์ ์ด๋ฏธ ์๊ณ ์์์ ์ ์ ์์ต๋๋ค.
๋น๊ต ๋ฐ ํ ์์ฒญ ์ ํด๋ฆญํฉ๋๋ค . ๊ทธ๋ฐ ๋ค์ ํ ์์ฒญ ๋ง๋ค๊ธฐ ๋ฅผ ํด๋ฆญํฉ๋๋ค . ์ฐ๋ฆฌ๋ ๋ฏธ๋ฆฌ ์ถฉ๋์ ํด๊ฒฐํ๊ธฐ ๋๋ฌธ์ ํ ์์ฒญ์ ์์ฑํ ๋ ์ฆ์ ๋ณํฉํ ์ ์์ต๋๋ค.
์ง๊ธ์ ๊ทธ๊ฒ ๋ค์ผ!
GO TO FULL VERSION