๐ "git ์ค์น๋ฒ?"
ํ์๋ window๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ window๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ช ํ ๊ฒ์ด๋ค.
๐ก ์ด ๊ธ์์ ์ฌ์ง์ 2.24.0 ๋ฒ์ ์ด์ง๋ง ์ค์ ๋ก๋ 2.29.2.3 ๋ฒ์ ์ผ๋ก ์งํ๋ฉ๋๋ค.
Git ๋ค์ด๋ก๋ ๋งํฌ์์ OS์ ๋ง๋ ํ์ผ์ ๋ค์ด๋ก๋ํ๋ค.
์ฝ๊ด์ ๋์ํ๋ ๋จ๊ณ์ด๋ค. Git์ ๋ผ์ด์ผ์ค๋ GNU ์ผ๋ฐ ๊ณต์ค ์ฌ์ฉ ํ๊ฐ์ ์ด๋ค.
๐ก GNU ์ผ๋ฐ ๊ณต์ค ์ฌ์ฉ ํ๊ฐ์
์ํํธ์จ์ด์ ์คํ, ์ฐ๊ตฌ, ๊ณต์ , ์์ ์ ์์ ๋ฅผ ์ต์ข ์ฌ์ฉ์์๊ฒ ๋ณด์ฅํ๋ค.
๊ทธ๋ฌ๋ ์ด ๋ผ์ด์ผ์ค๊ฐ ์ ์ฉ๋ ์ํํธ์จ์ด๋ฅผ ๋ณํํ๋ฉด ๋ณ๊ฒฝ๋ ์ปดํจํฐ ํ๋ก๊ทธ๋จ ์ญ์ ๋ฐ๋์ ๋๊ฐ์ ๋ผ์ด์ ์ค๋ฅผ ์ทจํด์ผ ํ๋ค
git์ ํฌํจ๋ ์ปดํฌ๋ํธ ์ค ์ฌ์ฉํ ๊ฒ์ ์ค์ ํ๋ ๋จ๊ณ์ด๋ค.
์ต์ ๋ค์ ์ค๋ช ์ ์๋์ ๊ฐ๋ค.
Additional icons
\_ on the Desktop: ๋ฐํํ๋ฉด์ ์์ด์ฝ ์ถ๊ฐ
Windows Explorer integration : ๋ง์ฐ์ค ์ฐ์ธก ํด๋ฆญ์ ํด๋น ํด๋๋ฅผ Git์ ์ฐ๊ฒฐํ๋ ๊ธฐ๋ฅ ์ ๊ณต
\_ Git Bash Here : Git Bash ์ฐ๊ฒฐ
\_ Git GUI Here : Git GUI ์ฐ๊ฒฐ
Git LPS(Large File Support) : ์ฉ๋์ด ํฐ ํ์ผ ์ง์
Associate .git* configuration files with the default text editor : '.git'์ผ๋ก ์์๋๋ ๊ตฌ์ฑ ํ์ผ์ ๊ธฐ๋ณธ txt ์๋ํฐ์ ์ฐ๋
Associate .sh files to be run with Bash : Bash์ ๊ฐ์ด ์คํ๋ .sh ํ์ผ ์ฐ๊ฒฐ
Use a TrueType font in all console windows : ์๋์ฐ์ ํธ๋ฃจํ์
ํฐํธ๋ฅผ ๋ชจ๋ ์๋์ฐ ์ฝ์์ ์ ์ฉํจ
Check daily for Git for Windows updates : ์๋์ฐ์ฉ git ์
๋ฐ์ดํธ๋ฅผ ๋งค์ผ ์ฒดํฌ
๐ก Git Bash : OS์ ์ข ์๋์ง ์์ ๋ฆฌ๋ ์ค ๊ธฐ๋ฐ ํฐ๋ฏธ๋์ฉ Git
๊ธฐ๋ณธ์ผ๋ก ์ฌ์ฉํ IDE(Integrated Development Environment) ๋ฅผ ์ค์ ํ๋ค.
๋ง์ฝ, IDE๊ฐ ์๋ ๊ฒฝ์ฐ Use Vim (the ubiquitous text deditor) as Git's default editor ๋ฅผ ์ ํํ๋ค.
๐ก IDE(Integrated Development Environment)
ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ์ ๊ด๋ จ๋ ๋ชจ๋ ์์ ์ ํ๋์ ํ๋ก๊ทธ๋จ ์์์ ์ฒ๋ฆฌํ๋ ํ๊ฒฝ์ ์ ๊ณตํ๋ ์ํํธ์จ์ด
์๋ก์ด ์ ์ฅ์(Git repository )๋ฅผ ๋ง๋ค ๋ ์์ฑ๋๋ ๋ธ๋์น๋ช ์ ์ค์ ํ๋ค.
๐ก ๋ธ๋์น : ์ ์ฅ์ ์์ ๋ ๋ฆฝ์ ์ธ ์์ ์์ญ
path(ํ๊ฒฝ๋ณ์)๋ฅผ ์ค์ ํ๋ค.
๐ก ํ๊ฒฝ๋ณ์์ path
ํ๊ฒฝ๋ณ์๋ os์์ ์์ ํ๋ก์ธ์ค๋ฅผ ์์ฑํ ๋ ํด๋น ํ๋ก์ธ์ค๋ฅผ ์คํ์ํค๊ธฐ์ํด ์ฐธ์กฐํ๋ ๋ณ์์ด๋ค.
path๋ ํ๊ฒฝ๋ณ์๋ก ํ๋ก์ธ์ค๋ฅผ ์คํ์ํฌ ๋ ํด๋น ํ๋ก๊ทธ๋จ์ด ์๋ ๊ฒฝ๋ก๋ฅผ ๋ปํ๋ค.
SSH๋ฅผ ์ ํํ๋ ๋จ๊ณ์ด๋ค.
๐ก SSH(Secure SHell) ์ด๋ ๋คํธ์ํฌ ์์ ๋ค๋ฅธ ์ปดํจํฐ์ ๋ก๊ทธ์ธ, ํ์ผ ๋ณต์ฌ ๋ฑ์ ์์ ์ ํด์ฃผ๋ ์์ฉ ํ๋ก๊ทธ๋จ ํน์ ํ๋กํ ์ฝ์ ๋งํ๋ค.
- ๊ฐ๋ ฅํ ์ธ์ฆ ๋ฐฉ๋ฒ์ ํตํ ์์ ํ ๋คํธ์ํฌ ํต์ ์ ํ ์ ์๊ฒ ์ ๊ณตํ๋ค.
- ๋ฐ์ดํฐ ์ ์ด, ์๊ฒฉ ์ ์ด๋ฅผ ํ ์ ์๋ค.
- ๊ฐ์ธํค(์ด๋ก ๋ณตํธํ), ๊ณต๊ฐํค(์ด๋ก ์ํธํ)๋ฅผ ์ด์ฉํ๋ค.
Use the OpenSSL library ๋ฅผ ์ ํํ๋ค.
OS๋ง๋ค ๊ฐํ์ ํ์ํ๋ ๊ฒ์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ์ค์ ํด์ผํ๋ค.
๐ก OS์ ๋ฐ๋ฅธ ๊ฐํ
๊ฐํ์ CR, LF, CRLF. RS๊ฐ ์์ผ๋ฉฐ ๊ฐ ์๋ฏธ์ ์ฌ์ฉ๋๋ OS๋ ์๋์ ๊ฐ๋ค.
๊ตฌ๋ถ ์ค๋ช ์ฌ์ฉ OS CR - Carrage Return
- ํ์ฌ ๋ผ์ธ์์ ์ปค์์ ์์น๋ฅผ ๋งจ ์์ผ๋ก ์ฎ๊ธฐ๋ ๋์์ ๋์ค, ๋งฅ ์ด๊ธฐ ๋ฒ์ (9๋ฒ์ ์ดํ) LF - Line Feed
- ์ปค์์ ์์น๋ ๊ทธ๋๋ก ๋๊ณ ์ข ์ด๋ฅผ ํ ๋ผ์ธ ์๋ก ์ฌ๋ฆผ๋ฆฌ๋ ์ค, ์ ๋์ค, mac(X๋ฒ์ ์ด์) CRLF CR + LF โ ์ปค์๋ฅผ ๋ค์ ๋ผ์ธ์ ๋งจ ์์ผ๋ก ์ด๋ ๋์ค, ์๋์ฐ RS Record Separator POSIX ์ด์ ์ QNX(1982๋ ์ ๊ฐ๋ฐํ ์ ๋์ค ๊ณ์ด์ ์๋ฒ ์ด์ ์ฒด์ )
๐ก checkout : ์ด๋ค ์์ ์ํ์ ์ด ๋ธ๋์น๋ฅผ ์ฌ์ฉํ๊ฒ ๋ค๊ณ ๋ช ์์ ์ผ๋ก ์ง์ ํ๋ ๋ช ๋ น์ด
git bash๋ฅผ ์ฌ์ฉํ ํฐ๋ฏธ๋ ์๋ฎฌ๋ ์ดํฐ๋ฅผ ์ค์ ํ๋ค.
git pull
๋ช
๋ น์ด์ ๋ํด ์ด๋ป๊ฒ ํ๋ํ ์ง๋ฅผ ์ ํํ๋ค.
๐ก
git pull
๋ช ๋ น์ด๋ ์๊ฒฉ ์ ์ฅ์์ ๋ณ๊ฒฝ์ฌํญ์ ๋ก์ปฌ ์ ์ฅ์๋ก ๊ฐ์ ธ์ค๋ ๋ช ๋ น์ด์ด๋ค.
git pull
๋ช
๋ น์ด๋ฅผ ์คํ๐ก fast-forward : ๋ธ๋์น ์ํ๊ฐ ์ด์ ๋ถํฐ ๋ณ๊ฒฝ๋์ง ์์ ๋จ์ํ ๋ณํฉํ๋ ๋ฐฉ๋ฒ
๐ก merge : ์์ชฝ์ ๋ธ๋์น๋ฅผ ํ๋๋ก ํฉ์น๋ ๋ฐฉ๋ฒ, ์๋ก ๋ณ๊ฒฝ ์ฌํญ์ด ์ ์ฉ๋๋ค.
๐ก rebase : merge ์ ๋น์ทํ๋ ์๋์ ์ปค๋ฐ ์ด๋ ฅ์ด ๋ณ๊ฒฝ์์ผ ์ ํํ ์ด๋ ฅ์ ๋จ๊ธฐ์ง ์๋๋ค.
Credential helper ๋ฅผ ์ค์ ํ๋ค.
๐ Credential helper
SSH ํ๋กํ ์ฝ ์ ์ฌ์ฉ(HTTPS ์ฌ์ฉ)ํ์ฌ ์๊ฒฉ ์ ์ฅ์์ ์ ๊ทผํ๋ฉด ์์ฑํ SSH Key ๋ฅผ ์ด์ฉํ์ฌ ์ฌ์ฉ์ ์ด๋ฆ๊ณผ ์ํธ๋ฅผ ์ ๋ ฅํ์ง ์๊ณ ๋ ์์ ํ๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ค.
๊ทธ๋ฌ๋, HTTP ํ๋กํ ์ฝ์ ์ฌ์ฉํ๋ฉด ๋งค๋ฒ ์ฌ์ฉ์ ์ด๋ฆ๊ณผ ์ํธ๋ฅผ ์ ๋ ฅํด์ผํ๋ค.Git์ Credential helper์ ์ ๊ณตํ์ฌ ์ด๋ฌํ ์ฌ์ฉ์ ์ด๋ฆ๊ณผ ์ํธ์ ๊ฐ์ ์ธ์ฆ์ ๋ณด๋ฅผ ์๋์ผ๋ก ์ ๋ ฅํด์ฃผ๋ ์์คํ ์ ์ ๊ณตํ๋ค.
๐ก SSH(Secure Shell Protocol) ํ๋กํ ์ฝ : ์์ ํ๊ฒ ํต์ ์ ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ํ๋กํ ์ฝ
๐ก HTTP(Hypertext Transfer Protocol) ํ๋กํ ์ฝ : ์ธํฐ๋ท์์์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํ ํ๋กํ ์ฝ
๊ธฐํ ์ค์ ์ ํ๋ค.
๐ก ์ฌ๋ณผ๋ฆญ ๋งํฌ(symbolic links)
์ฌ๋ณผ๋ฆญ ๋งํฌ๋ ํ์ผ์ด๋ ๋๋ ํ ๋ฆฌ์ ๋ํ ์ฐธ์กฐ๋ฅผ ํฌํจํ๊ณ ์๋ ํน๋ณํ ์ข ๋ฅ์ ํ์ผ์ด๋ค.
๋งํฌ๋ฅผ ์ฐ๊ฒฐํ์ฌ ์๋ณธ ํ์ผ์ ์ง์ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๊ฐ์ ํจ๊ณผ๋ฅผ ๋ด๋ ๋งํฌ์ด๋ค.
์ดํ ์คํ์ ์ธ ๊ธฐ๋ฅ ์ต์ ์ ํ์ด ์์ง๋ง ์ด๋ ์์ง ๋ฏธ์์ฑ ๊ธฐ๋ฅ์ผ๋ก ์ด๋ ์ฒดํฌ ํด์ ๋ฅผ ํ๋ค.
์ด ๋จ๊ณ๋ฅผ ๋ง์น๋ฉด git ์ค์น๊ฐ ์๋ฃ๋๋ค.