- Published on
๐ Git(1)-๋๋ฆผ์ฝ๋ฉ ์ ํฌ๋ธ ๊ฐ์ ์ ๋ฆฌ
- ๊ธ์ด์ด
๐ ๋ชฉ์ฐจ
๐๐ป
- git ์๊ฐ
- git ์ค์
- git ๋ช ๋ น์ด ๋จ์ถํค
- git ์ด๊ธฐํ/์ญ์
1. git ์๊ฐ
๐ก ๊น: ๋ฒ์ ์ ํธ๋ฆฌํ๊ฒ ๊ด๋ฆฌํ ์ ์๋๋ก ๋์์ฃผ๋ ๋๊ตฌ
์ฐ๋ฆฌ๊ฐ ์์ ํ๊ณ ์๋ ํ์ผ๋ค์ ์ํ๋ ์๊ฐ์ผ๋ก ๋ค์ ๋์๊ฐ ์ ์๊ฒ ๋ง๋ค์ด์ฃผ๋ ๋๊ตฌ
git ์ค์น
๊น์ ๋ช ๋ น์ด๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ํ ๋ช ๋ น์ด ํ๋ก๊ทธ๋จ -> ํฐ๋ฏธ๋์์ ์ปค๋งจ๋๋ก ๋ฐฐ์์ผ ๊น์ ์ ํํ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ตํ ์ ์๋ค. ๊น์ ์ฒ์ ๋ฐฐ์ธ ๋๋ ํฐ๋ฏธ๋์ ์ด์ฉํด์ ๋ช ๋ น์ด๋ก ํ๋์ฉ ๊ณต๋ถํด๋๊ฐ๋ ๊ฑธ ์ถ์ฒํ๋ค.
๋ฌผ๋ก ui๋ ๋ง์ด ์์ด์ git ๊ณต์ ์ฌ์ดํธ์์ ์ฌ์ฉ๊ฐ๋ฅํ ui ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ํด ์์๋ณผ ์ ์๋ค. ๊น์ ์ ์ดํดํ๊ณ ๊ธฐ๋ฅ์ ์ ์ด์ฉํ๋ค๋ฉด ui ์ฌ์ฉ๋ ์ถ์ฒํ๋ค.
- ๊นํ๋ธ ๋ฐ์คํฌํ - ๊ธฐ๋ฅ์ด ์ ํ๋์ด ๋น์ถ
- ์ํ๋ผ์์ Sourcetree(์์คํธ๋ฆฌ) - ui๊ฐ ์กฐ๊ธ ํด๋์ํ์ง๋ง ๋ค์ํ ๊ธฐ๋ฅ ํฌํจํด์ ์ถ์ฒ
- GitKraken(๊นํฌ๋ผ์ผ) - ํ๋ คํ ui ์ข์ํ๋ฉด ์ถ์ฒ
๊น ์ค์น ์ ํฐ๋ฏธ๋์ด ํ์ - ๋งฅ๋ถ์ด๋ผ๋ฉด iTerm2 ํ๋ก๊ทธ๋จ ์ด์ฉํด๋ณด์
๋งฅ์ด๋ ์๋์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ด์ฅ๋์ด ์๋ ํฐ๋ฏธ๋์ ์จ๋๋์ง๋ง ์กฐ๊ธ ๋ ํธ๋ฆฌํ ํด์ ์ด์ฉํ๊ณ ์ถ๋ค๋ฉด ๋งฅ์์๋ iTerm2, ์๋์ฐ๋ผ๋ฉด cmder์ ์ถ์ฒ(์๋์ฐ์์ cmder๋ฅผ ์ค์นํ๋ฉด git์ด ํฌํจ๋์ด ์ค์น๋จ)
๊น ์ค์น ํ ์ค์น ์ฌ๋ถ ํ์ธ
ํฐ๋ฏธ๋์ ์๋ ๋ช ๋ น์ด ์ ๋ ฅํ๋ฉด ์ค์น๋ ๊น์ ๋ฒ์ ์ ํ์ธํ ์ ์๋ค.
git --version
๋ง์ฝ ๊น์ด ์ค์น๊ฐ ์๋์ด ์๋ค๋ฉด
๊น ๊ณต์ ์ฌ์ดํธ์ ๋ค์ด๋ก๋ ํ์ด์ง์์ ์์ ์ ์ด์์ฒด์ ์ ๋ง๊ฒ ๋ค์ด๋ก๋ ํ ์ ์๋ค.
Sourcetree๋ฅผ ์ค์นํ๋ ค๋ฉด
Sourcetree(์์คํธ๋ฆฌ) ๊ณต์ ์ฌ์ดํธ์ ๊ฐ์ ์์ ์ ์ด์์ฒด์ ์ ๋ง๊ฒ ๋ค์ด๋ก๋ ํ ์ ์๋ค.
2. git ์ค์น ํ ์ค์
ํฐ๋ฏธ๋์์ ์๋ ๋ช ๋ น์ด๋ฅผ ์์ฑํ๋ฉด ๋ชจ๋ ์ค์ ์ ํ์ธํ ์ ์๊ณ
git config --list
๋ค์ q๋ฅผ ๋๋ฅด๋ฉด ํฐ๋ฏธ๋๋ก ๋์์ฌ ์ ์๋ค. ๋ง์ฝ ํ์ผ๋ก ์ด์ด ๋ณด๊ณ ์ถ์ผ๋ฉด ๊ธ๋ก๋ฒ๋ก ์ค์ ๋ edit(ํธ์ง)๋ชจ๋๋ฅผ ์ด๊ฒ๋๋ฉด
git config --global -e
ํฐ๋ฏธ๋์์ ๋ชจ๋ ์ค์ ์ ํ์ธํ ์ ์๋ค.
ํฐ๋ฏธ๋์ด ์๋๋ผ ํ ์คํธ ์๋ํฐ์์ ์ด์ด๋ณด๊ณ ์ถ๋ค๋ฉด ๊ฐ์ ์ํ๋ ํ ์คํธ ์๋ํฐ๋ฅผ ์ฐ๊ฒฐํ ์ ์๋๋ฐ ๊ฐ์์์๋ visual studio code๋ฅผ ์ฐ๊ฒฐํด๋ณด๋๋ก ํ๋ค.
visual studio code ์ฐ๊ฒฐ
๊ฐ ํ ์คํธ ์๋ํฐ๋ง๋ค ์ฐ๊ฒฐ๋ฐฉ๋ฒ์ด ๋ค๋ฅธ๋ฐ, ๋ณดํต ์ปค๋งจ๋ ํ๋ ํธ ํด์์ 'code'๋ฅผ ๊ฒ์ํ๋ฉด ์ฐ๊ฒฐํ ์ ์๋ shell command์ ์ค์ ํ ์ ์๋ ๋ช ๋ น์ด๊ฐ ๋์จ๋ค. visual studio code๋ ์ฐ๊ฒฐ ์ค์ ํ ํฐ๋ฏธ๋์
code .
๋ฅผ ์ ๋ ฅํ๋ฉด ์ฐ๋์ด ๋๋ค. ๋ํ
git config --global -core.editor "code --wait"
๋ก ๊ธ๋ก๋ฒ์ ์ผ๋ก ์ค์ ํ๊ณ -core.editor "code --wait"๋ ๋ฐฉ๊ธ ์ด ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ช ๋ น์ด๊ณ ๊ทธ๋ฅ "code"๋ฅผ ์ฐ๋ฉด ๊ทธ ๋ค์ ๋ค๋ฅธ ๋ช ๋ น์ด๋ฅผ ๋ฐ๋ก ์น ์ ์๋ค. code --wait๋ฅผ ์์ฑํ๋ฉด ํ ์คํธ ์๋ํฐ์์ ์ด๋ฆฐ ํ์ผ์ด ์ ์ฅ๋๊ธฐ ์ ๊น์ง๋ ๋ค๋ฅธ ๋ช ๋ น์ด๋ฅผ ์ธ ์ ์๊ฒ ์ฝ๋๊ฐ '๊ธฐ๋ค๋ฆฐ๋ค'.
์ฌ์ฉ์ ์ ๋ณด ์ค์
๋์ผํ๊ฒ ๊น ๊ธ๋ก๋ฒ ๋ช ๋ น์ด๋ฅผ ์์ฑํ ๋ค์์ ์ ์ ์ ์ ๋ณด๋ฅผ ์ค์ ํด๋ณด์.
git config --global user.name"lisoh"
git config --global user.email"lisoh@mail.com" //๋ณธ์ธ์ ์ ๋ณด๋ก ์์ฑํด์ผํจ
์ด๋ ๊ฒ ์ค์ ํ๊ณ
git config user.name
๋ช ๋ น์ด๋ฅผ ์์ฑํ๋ฉด ๋ด๊ฐ ์ ์ฅํ ๋์ ์ด๋ฆ์ด ์ถ๋ ฅ๋๋ ๊ฑธ ๋ณผ ์ ์๋ค.
์ด์์ฒด์ ๊ฐ ์ค๋ฐ๊ฟ ์ฝ๋ ์๋๋ณ๊ฒฝ ์ค์
git config --global core.autocrlf true //์๋์ฐ ์ฌ์ฉ์๋ผ๋ฉด
git config --global core.autocrlf input //๋งฅ ์ฌ์ฉ์๋ผ๋ฉด
๋ฅผ ์์ฑํ๋ฉด ์๋ํฐ์์ ์๋ก์ด ์ค๋ฐ๊ฟ์ ํ ๋ ๋ค์ด๊ฐ๋ ๋ฌธ์์ด์ด ๋ฌ๋ผ์ง๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์๋์ฐ๋ /r/n , ๋งฅ์ /n์ ์์ฑํด์ฃผ๋๋ฐ, ์์ ๋ช ๋ น์ด๋ฅผ ์ฐ๋ฉด ์ด์์ฒด์ ๋ฅผ ์ค๊ฐ ๋ ์์์ /r์ ๋ถ์ด๊ฑฐ๋ ์ญ์ ํด์ค๋ค.
3.git ๋ช ๋ น์ด
'git + ๋ช ๋ น์ด' ํํ๋ก ๋ช ๋ น์ด๊ฐ ์ด๋ฃจ์ด์ง๋ค. ๊น ๊ณต์ ์ฌ์ดํธ์ documentation - reference ํ์ด์ง๋ฅผ ๊ฐ๋ฉด git์ ๋ชจ๋ ๋ช ๋ น์ด๋ฅผ ๋ณผ ์ ์๋ค.
ํฐ๋ฏธ๋ ๋ช ๋ น์ด
mkdir [ํด๋์ด๋ฆ] //ํด๋ ๋ง๋ค๊ธฐ
cd [ํด๋์ด๋ฆ] //ํด๋๋ก ์ด๋ํ๊ธฐ
ls -al //ํด๋(๋๋ ํ ๋ฆฌ)๋ด์ฉ ๋์ดํ๊ธฐ
์์ฃผ์ฐ์ด๋ ๋ช ๋ น์ด
git init //git ์ด๊ธฐํ -> ์๋์ผ๋ก master ๋ธ๋์น๊ฐ ์์ฑ๋๋ค.
rm -rf git //git์ ์ญ์
git status //git์ ์ํ๋ฅผ ๋ณผ ์ ์์
git config --global alias //ํฐ๋ฏธ๋์์์ ๋ช
๋ น์ด๋ฅผ ๋จ์ถํด์ ์ธ ์ ์๊ฒ ํ๋ ๋ช
๋ น์ด
git config --global alias.st status // status๋ฅผ st๋ก ๋จ์ถํด์ ์ค์ ํด๋ฌ๋ผ
git config --h //git ๋ช
๋ น์ด์ ๋ช
๋ น์ด์ ์์ฑ๊ฐ์ ๋ณด๊ณ ์ถ์ผ๋ฉด ๋ช
๋ น์ด ๋ค์ --h๋ฅผ ์
๋ ฅํ๋ฉด ๋๋ค.
ํด๋ ์์ '.'์ด ๋ถ์ผ๋ฉด ์จ๊ฒจ์ง ํด๋๋ผ๋ ๋ป. ๊ทธ๋ฅ ls๋ฅผ ์น๋ฉด ๋์ค์ง ์๋๋ค. master branch : ๊ธฐ๋ณธ์ ์ผ๋ก commit์์ ๋ฒ์ ์ ๊ด๋ฆฌํ๋ ๋ธ๋์น
4.git ์ด๊ธฐํ/์ญ์
ํฐ๋ฏธ๋์์ git ์ด๊ธฐํ ๋ฐ ์ญ์ ํ๋ ๋ฐฉ๋ฒ
git init //git ์ด๊ธฐํ -> ์๋์ผ๋ก master ๋ธ๋์น๊ฐ ์์ฑ๋๋ค.
rm -rf git //git์ ์ญ์
ui๋ก git์ ์ด๊ธฐํํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ (Sourcetree)
์ด๋ฏธ ๊ธฐ์กด์ ๋ง๋ git์ด ์๋ค๋ฉด Sourcetree๋ฅผ ์ด๊ณ ๊ทธ์์ gitํด๋๋ฅผ ๋๋๊ทธํจ์ผ๋ก์จ git์ ์ถ๊ฐํ ์ ์๋ค. ์๋ก์ด git์ new ๋ฒํผ์ ๋๋ฌ์ ๋ง๋ค ์ ์๋ค. create local repository๋ฅผ ๋๋ฅด๋ฉด ์ํ๋ ๊ฒฝ๋ก์ ๊น ๋ ํฌ์งํฐ๋ฆฌ๋ฅผ ๋ง๋ค ์ ์๋ค.