
ํ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ์๋, ํ์ ๊ทธ๋ฆฌ๊ณ ์์ ์ฑ์ด ํต์ฌ์ ๋๋ค. ํนํ Java ์ํ๊ณ์์ ์๋์ ์ธ ์์น๋ฅผ ์ฐจ์งํ๊ณ ์๋ Spring Boot๋ ๊ฐ๋ฐ์๊ฐ ๋น์ฆ๋์ค ๋ก์ง์ ์ง์คํ ์ ์๋๋ก ์ค์ ๊ณผ ๋ฐฐํฌ ๊ณผ์ ์ ๊ทน๋๋ก ๋จ์ํ์์ผ ์ค๋๋ค. Spring Boot๋ฅผ ํตํด ํ์ ์ ์ธ ์๋น์ค๋ฅผ ๋น ๋ฅด๊ฒ ๊ตฌ์ถํ๋ ๊ฒ์ ๊ฐ๋ฅํด์ก์ง๋ง, ํด๋น ์ฝ๋๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ , ํ์๋ค๊ณผ ๋์์์ด ์ฃผ๊ณ ๋ฐ์ผ๋ฉฐ, ๋ณ๊ฒฝ ์ด๋ ฅ์ ์์ ํ๊ฒ ๋ณด์กดํ๋ ๋ฌธ์ ๋ ์ฌ์ ํ ์ค์ํ ๊ณผ์ ์ ๋๋ค.
์ด๋ฌํ ๊ณผ์ ๋ฅผ ํธ๋ฆฌํ๊ฒ ๊ด๋ฆฌํ ์ ์๋๋ก ๋ฑ์ฅํ ๋๊ตฌ๊ฐ Git์ ๋๋ค. Git์ Linus Torvalds๊ฐ ๊ฐ๋ฐํ ๋ถ์ฐ ๋ฒ์ ๊ด๋ฆฌ ์์คํ (Distributed Version Control System, DVCS)์ผ๋ก, ํ๋ก์ ํธ์ ๋ณ๊ฒฝ ์ฌํญ์ ์ถ์ ํ๊ณ , ์ฌ๋ฌ ๊ฐ๋ฐ์ ๊ฐ์ ํ์ ์ ์กฐ์จํ๋ฉฐ, ํ์ํ ๋ ์ธ์ ๋ ์ง ์ด์ ์ํ๋ก ๋๋๋ฆด ์ ์๋ '์๊ฐ ์ฌํ' ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. Git์ด ์๋ค๋ฉด ์ ๋ง์ ๊ฐ๋ฐ์๊ฐ ๋์์ ์์ ํ๋ ๋๊ท๋ชจ ํ๋ก์ ํธ๋ ํผ๋์ ๋น ์ง ์ ๋ฐ์ ์์ต๋๋ค.
์ ๊ฐ๋ฐ์์๊ฒ Git Bash ํ์ฉ์ด ์ค์ํ๊ฐ?
๋๋ถ๋ถ์ ํตํฉ ๊ฐ๋ฐ ํ๊ฒฝ(IDE)์ธ IntelliJ IDEA๋ Eclipse ๋ฑ์ ํธ๋ฆฌํ GUI(Graphic User Interface)๊ธฐ๋ฐ์ Git ๊ธฐ๋ฅ์ ๋ด์ฅํ๊ณ ์์ต๋๋ค. ํ์ง๋ง ์๋ จ๋ ๊ฐ๋ฐ์์ผ์๋ก, ๊ทธ๋ฆฌ๊ณ ๋ณต์กํ๊ณ ์ ๊ตํ ๋ฒ์ ๊ด๋ฆฌ ์์ ์ ์ํํ๋๋ก CLI(Command Line Interface)๊ธฐ๋ฐ์ Git Bash ์ฌ์ฉ์ ํ์์ ์ธ ์ญ๋์ด ๋ฉ๋๋ค.
- ์ ํํ ์ ์ด์ ๊น์ ์ดํด
Git Bash๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ๊ฐ๋ฐ์๊ฐ Git์ ๋ด๋ถ ๋์ ์๋ฆฌ๋ฅผ ๋ ๊น์ด ์ดํดํ๊ณ ์๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๋ช ๋ น์ด ํ๋ํ๋๊ฐ Git์ ์ด๋ค ๊ธฐ๋ฅ์ ์ง์ ์ ์ผ๋ก ํธ์ถํ๋์ง ์๊ธฐ ๋๋ฌธ์, GUI๊ฐ ์ ๊ณตํ์ง ๋ชปํ๋ ๋ฏธ์ธํ๊ณ ๊ฐ๋ ฅํ ์ ์ด๊ฐ ๊ฐ๋ฅํด์ง๋๋ค. - ํ๊ฒฝ ๋
๋ฆฝ์ฑ
GUI ๋๊ตฌ๋ ํ๊ฒฝ์ด๋ ๋ฒ์ ์ ๋ฐ๋ผ ์ธํฐํ์ด์ค๊ฐ ๋ฌ๋ผ์ง ์ ์์ง๋ง, Git Bash์์ ์ฌ์ฉํ๋ Git ๋ช ๋ น์ด๋ ๋ชจ๋ ์ด์์ฒด์ (Windows, MacOS, Linux)์์ ์ผ๊ด๋๊ฒ ์๋ํฉ๋๋ค. ์ด๋ ํ ํ๊ฒฝ์ด ๋ค์ํ ๋ ํต์ผ๋ ์์ ๋ฐฉ์์ ์ ์งํ๋ ๋ฐ ํฐ ๋์์ด ๋ฉ๋๋ค. - ํจ์จ์ ์ธ ๋ฐ๋ณต ์์
๋ณต์กํ ๋ธ๋์น ์ ๋ต(Git Flow), ์ปค๋ฐ ์ ์ (Rebase), ํน์ ์ด๋ ฅ๋ง ๊ฐ์ ธ์ค๊ธฐ(Cherry-pick) ๋ฑ์ ๊ณ ๊ธ ์์ ์ CLI ํ๊ฒฝ์์ ํจ์ฌ ๋น ๋ฅด๊ณ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
Git Bash๋ฅผ ํตํ Spring Boot ํ๋ก์ ํธ ๋ฒ์ ๊ด๋ฆฌ
Spring Boot ํ๋ก์ ํธ๋ฅผ Git Bash ํ๊ฒฝ์์ ์์๋ถํฐ ๋ง๋ฌด๋ฆฌ๊น์ง ๊ด๋ฆฌํ๋ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ํ๋ฆ(์ต์ด ์ค์ , ๋ณ๊ฒฝ ์ฌํญ ํ์ธ ๋ฐ ์คํ ์ด์ง(Staging), ๋ก์ปฌ ์ปค๋ฐ(Commit), ์๊ฒฉ ์ ์ฅ์๋ก์ ํธ์(Push) ๊ณผ์ )์ ์์ธํ๊ฒ ์๋ดํ๊ณ ์ ํฉ๋๋ค.
๐ ๏ธ Git Bash๋ก Commit & Push ์ค๋น์ฌํญ
1. Commit์ ์งํํ SpringBoot ํ๋ก์ ํธ๋ฅผ ์ค๋นํด์ฃผ์ธ์.
2. Git Repository๋ฅผ ์ค๋นํด์ฃผ์ธ์.
Commit์ ์งํํ ๋๋ ํ ๋ฆฌ ์ด๋
Git Bash๋ฅผ ์คํ ํ, 'cd' ๋ช ๋ น์ด๋ก Commit์ ์งํํ๊ธฐ ์ํ ํด๋์ ์์น๊น์ง ์ง์ ์ด๋ํ๋ ๋ฐฉ๋ฒ ๋๋ Commit์ ์งํํ ํด๋์ ์์น์์ Git Bash๋ฅผ ์คํํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
ํด๋ ์์น๊น์ง ์ง์ ์ด๋ํ๋ ๋ฐฉ๋ฒ
1. Git Bash๋ฅผ ์คํ ํ, 'cd' ๋ช
๋ น์ด๋ก Commit์ ์งํํ ํด๋์ ์์น๊น์ง ์ด๋ํฉ๋๋ค.

ํ์๋ Commitํ ํด๋ TestProject01์ด F ๋๋ผ์ด๋ธ ์ด๋ฏ๋ก ๋๋ผ์ด๋ธ๋ก ๋จผ์ ์ด๋ ํ, ํด๋์ ์์น๋ก ์ด๋ํ์์ต๋๋ค.
Commit์ ์งํํ ํด๋ ์์น์์ Git Bash ์คํ ๋ฐฉ๋ฒ
1. Commit์ ์งํํ ํด๋๋ก ์ด๋ ํ, ๋ง์ฐ์ค ์ฐํด๋ฆญ > 'Open Git Bash Here' ๋ฉ๋ด๋ฅผ ๋๋ฌ Git Bash๋ฅผ ์คํํฉ๋๋ค.

Git ์ฌ์ฉ์ ์ ๋ณด ๋ฐ ์ด๊ธฐํ ์ค์
๐ ๏ธ ์ฌ์ฉ์ ์ ๋ณด ์ค์ ๋ช ๋ น์ด
git config --global user.name "๋ณธ์ธ์ ์ด๋ฆ ํน์ ๋๋ค์"
git config --global user.email "๋ณธ์ธ์ ์ด๋ฉ์ผ ์ฃผ์"
git config --list
1. ' git config --global user.name ๋ณธ์ธ์ ์ด๋ฆ ํน์ ๋๋ค์ ' ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด์ฃผ์ธ์.

'git config --global user.name' ๋ช ๋ น์ด๋ ์ปค๋ฐ ๊ธฐ๋ก์ ํ์ํ ์ฌ์ฉ์ ์ด๋ฆ์ ์ค์ ํฉ๋๋ค. ์ํ๋ ์ด๋ฆ์ผ๋ก ์ค์ ํด๋ ๋์ง๋ง, ์๊ฒฉ ์ ์ฅ์ ์๋น์ค์์ ์ฌ์ฉํ๋ ์ด๋ฆ๊ณผ ์ผ์น ์ํค๋๊ฒ์ด ๊ด๋ฆฌํ๊ธฐ ํธ๋ฆฌํฉ๋๋ค.
2. ' git config --global user.email ๋ณธ์ธ์ ์ด๋ฉ์ผ ' ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด์ฃผ์ธ์.

'git config --global user.email' ๋ช ๋ น์ด๋ ์ปค๋ฐ ๊ธฐ๋ก์ ํ์๋ ์ด๋ฉ์ผ ์ฃผ์๋ฅผ ์ค์ ํฉ๋๋ค. ์ ๋ ฅํ ์ฃผ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ปค๋ฐ์ด ํด๋น ๊ณ์ ์ ์ฐ๊ฒฐ๋ฉ๋๋ค.
3. ' git config --list ' ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด์ฃผ์ธ์.

'git config --list' ๋ช ๋ น์ด๋ ํ์ฌ ์ค์ ์ค์ธ git์ ๋ชจ๋ ์ค์ ์ ๋ฆฌ์คํธ๋ก ํ์ธํ ์ ์์ต๋๋ค. ์ 1,2๋ฒ์ ์ค์ ํ ์ฌ์ฉ์ ์ด๋ฆ๊ณผ ์ด๋ฉ์ผ์ด ์ ์ค์ ๋์๋์ง list ๋ช ๋ น์ด๋ก ์ถ๋ ฅ๋ ๋ด์ฉ์์ ํ์ธํ ์ ์์ต๋๋ค.
โผ๏ธ ํน์ ํ๋ก์ ํธ์์๋ง ๋ค๋ฅธ ์ด๋ฆ๊ณผ ์ด๋ฉ์ผ ์ค์ ์ ํ๊ณ ์ถ๋ค๋ฉด?
'--global' ์ต์ ์ ๋ชจ๋ ํ๋ก์ ํธ์์ ์ฌ์ฉํ ์ ๋ฐฉ์์ ์ธ ์ต์ ์ด๋ฏ๋ก, ํน์ ํ๋ก์ ํธ ํด๋๋ก ์ด๋ํ์ฌ '--global' ์ต์ ์ ๋นผ๊ณ ์ ๋ช ๋ น์ด๋ฅผ ์คํํ๋ฉด ํด๋น ๋ก์ปฌ ์ ์ฅ์์๋ง ์ ์ฉ๋๋ฏ๋ก ํน์ ํ๋ก์ ํธ์์๋ง ์ฌ์ฉํ ์ ์๋๋ก ์ค์ ํ ์ ์์ต๋๋ค.
4. ' echo ๋ด์ฉ >> README.md ' ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด์ฃผ์ธ์.

'echo {๋ด์ฉ} >> README.md' ๋ช ๋ น์ด๋ ํ์ ํญ๋ชฉ์ ์๋๋๋ค. ํด๋น repository ์ค๋ช ์ ์์ฑํ๊ธฐ ์ํ ํ์ผ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋ฉ๋๋ค. README ํ์ผ์ ์์ฑํ๊ณ ์ ํ๋ค๋ฉด ์ ๋ช ๋ น์ด๋ฅผ ํตํด์ ํ์ผ์ ์์ฑํ ์ ์์ต๋๋ค.

'README.md' ํ์ผ ์์ฑ์์ํ ๋ช ๋ น์ด๋ฅผ ์คํํ๋ฉด Commit์ ์งํํ ํด๋ ๋ด, README ํ์ผ์ด ์์ฑ๋๊ฑธ ํ์ธํ ์ ์์ต๋๋ค.
5. ' git init ' ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด์ฃผ์ธ์.

'git init' ๋ช ๋ น์ด๋ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์์ํ๊ธฐ ์ํ ๊ฐ์ฅ ์ฒซ๋ฒ์งธ๋ก ์คํํด์ผ ํ๋ ํต์ฌ์ ์ธ ๋ช ๋ น์ด์ ๋๋ค. ํ์ฌ Commit์ ์งํํ๊ธฐ ์ํ ํด๋๋ Git ์ ์ฅ์๋ก ํ์ฉํ ์ ์๋ ์ผ๋ฐ์ ์ธ ํด๋์ ๊ฐ์ต๋๋ค. 'git init' ๋ช ๋ น์ด๋ฅผ ์คํํด์ผ๋ง .git ํด๋๊ฐ ๋ง๋ค์ด์ง๋ฉด์ ๋น๋ก์ Git์ด ๊ด๋ฆฌํ ์ ์๋ ์ ์ฅ์์ ํด๋๋ก ์ค์ ๋ฉ๋๋ค.

๋ช ๋ น์ด๋ฅผ ์คํ ํ, ํด๋น ํด๋๋ฅผ ํ์ธํด๋ณด๋ฉด .git ํด๋๊ฐ ์์ฑ๋์ด ์๋๊ฑธ ํ์ธํ ์ ์์ต๋๋ค.
6. ' git add README.md ' ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด์ฃผ์ธ์.

'git add README.md' ๋ช ๋ น์ด๋ README ํ์ผ์ Git์ ์คํ ์ด์ง ์์ญ์ ์ถ๊ฐํ๊ฒ ๋ค๋ ์๋ฏธ์ ๋๋ค.
๐ Git ๋ฒ์ ๊ด๋ฆฌ ๊ณผ์ 3๋จ๊ณ
1. ์์ ๋๋ ํ ๋ฆฌ(Working Directory) : ์ฝ๋๋ฅผ ์์ ํ๋ ์ค์ ๊ณต๊ฐ์ ๋๋ค.
2. ์คํ ์ด์ง ์์ญ(Staging Area / Index) : ์ปค๋ฐํ ๋ณ๊ฒฝ ์ฌํญ๋ค์ ์์๋ก ๋ชจ์๋๋ ๊ณณ์ ๋๋ค.
3. ๋ก์ปฌ ์ ์ฅ์(Local Repository) : ์ต์ข ์ ์ผ๋ก ๋ณ๊ฒฝ ์ด๋ ฅ(์ปค๋ฐ)์ด ๊ธฐ๋ก๋๋ ๊ณณ์ ๋๋ค.
'git add' ๋ช ๋ น์ด๋ ์์ ๋๋ ํ ๋ฆฌ์์ ํ์ผ์ ๋ณ๊ฒฝ ์ฌํญ์ ๊ณจ๋ผ ์คํ ์ด์ง ์์ญ์ผ๋ก ์ฌ๋ ค์ฃผ๋ ์ญํ ์ ํฉ๋๋ค. ์ต์ด ํ๊ฒฝ์์ README.md ํ์ผ์ ๋ง๋ค์๊ธฐ ๋๋ฌธ์ ์์ ์ฌํญ์ ํด๋น๋ฉ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๋ค์ ์ปค๋ฐ์ ํฌํจ๋ ์ค๋น๊ฐ ๋์๋ค๋ ๋ป์ด ๋ฉ๋๋ค. ๊ทธ๋์ 'git add' ๋ช ๋ น์ด๋ก ์คํ ์ด์ง ์์ญ์ ์ถ๊ฐํฉ๋๋ค.
7. ' git commit -m ์ฃผ์ ๋ด์ฉ ' ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด์ฃผ์ธ์.

'git commit -m {์ฃผ์ ๋ด์ฉ}' ๋ช ๋ น์ด๋ ๋ก์ปฌ ์ ์ฅ์์ ๋ณ๊ฒฝ ์ด๋ ฅ์ ๊ธฐ๋ก(์ปค๋ฐ)ํ๋ฉด์, ํด๋น ๊ธฐ๋ก์ ๋ํ ์ค๋ช ์ ํจ๊ป ๋ฃ์ ์ ์์ต๋๋ค. ํฐ ๋ฐ์ดํ ์ฌ์ด์ ๋ค์ด๊ฐ ๋ด์ฉ์ด ๊ธฐ๋ก์ ์ฌ์ฉ๋ ์ฃผ์ ๋ด์ฉ์ ๋๋ค. ' -m ' ์ต์ ์ ๋ฉ์ธ์ง(Message)๋ฅผ ๋ฐ๋ก ์ด์ด์ ์์ฑํ๊ฒ ๋ค๋ ์ต์ ์ค์ ์ ๋๋ค.
โผ๏ธCommit์, ์ฃผ์ ๋ด์ฉ์ด ์ ์ค์ํ ๊น?
์ธ์ , ๋๊ฐ, ์ด๋ค ๋ด์ฉ์๊ณผ ๊ฐ์ ๋ฉ์์ง๋ ์์ ๋๋ ํ์๋ค์๊ฒ ํ๋ก์ ํธ์ ์ญ์ฌ๋ฅผ ์ดํดํ๋๋ฐ ๊ฐ์ฅ ์ค์ํ ์์๊ฐ ๋ ๊ฒ์ ๋๋ค. ์ค๋ ์๊ฐ์ด ์ง๋ ํ ํด๋น ํ๋ก์ ํธ๋ฅผ ๋ค์ ๋ค์ฌ๋ค๋ดค์ ๋, ๋ฌด์จ ๋ด์ฉ์ธ์ง ๋ชจ๋ฅด๋ ๊ฒฝ์ฐ ์ฃผ์์ ํ์ธํด๋ณด๋ฉด ๊ธฐ์ต์ด ๋๊ฑฐ๋ ๋ด์ฉ์ ์ดํดํ๋๋ฐ ์์ํ ๊ฒ์ ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ Commit ์, ์์ฑํ๋ ๋ฉ์์ง๋ ๊ทธ๋งํผ์ ์ค์ํ ์๋ฏธ๊ฐ ์์ต๋๋ค.
8. ' git branch -M main ' ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด์ฃผ์ธ์.

'git branch -M main' ๋ช ๋ น์ด๋ ๋ธ๋ฐ์น ์ด๋ฆ์ 'master' ์์ 'main' ์ผ๋ก ๋ณ๊ฒฝํ๋ ์ญํ ์ ํฉ๋๋ค. ' -M ' ์ต์ ์ 'move' ๋๋ 'rename'์ ์๋ฏธ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ํด๋น ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ๋ฉด ํ์ฌ ๋ธ๋ฐ์น์ ์ด๋ฆ์ ๋ค์ ์ง์ ํ ์ด๋ฆ์ผ๋ก ๋ฐ๊ฟ๋๋ค. ์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ฉด master๋ก ์ค์ ๋์ด ์๋ ๋ธ๋ฐ์น๋ช ์ด main์ผ๋ก ๋ณ๊ฒฝ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
โผ๏ธ์ ๋ธ๋ฐ์น๋ช ์ main์ผ๋ก ๋ณ๊ฒฝํ๋์?
์ํํธ์จ์ด ์ ๊ณ ์ ๋ฐ์์ ํฌ์ฉ์ฑ(Inclusivity)์ ๋์ด๊ธฐ ์ํ ๋ ธ๋ ฅ์ ์ผํ์ผ๋ก, 'master / slave'์ ๊ฐ์ ์ฉ์ด๊ฐ ์ฐ์๋๋ 'master' ๋์ 'main' ๋ธ๋ฐ์น ์ด๋ฆ์ ๊ธฐ๋ณธ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ด ๊ถ์ฅ๋๊ธฐ ์์ํ์ต๋๋ค. ๊ทธ๋์ GitHub, GitLab ๋ฑ ์ฃผ์ Git ํธ์คํ ์๋น์ค๋ค์ด ๊ธฐ๋ณธ ๋ธ๋ฐ์น ์ด๋ฆ์ master ๋์ main์ผ๋ก ๊ถ์ฅํ๊ณ ํ์คํํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
9. ' git remote add origin https://githup.com/JoeHyoenjune/GitPushTest01.git ' ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด์ฃผ์ธ์.

'git remote add origin {์ฃผ์}' ๋ช ๋ น์ด๋ GitHub์ ์๋ ํด๋น Repository ์ฃผ์์ ์๊ฒฉ ์ ์ฅ์ ์ด๋ฆ์ 'origin' ์ด๋ผ๋ ๋ณ์นญ(Alias) ๋๋ ์ด๋ฆ์ผ๋ก ์ค์ ํฉ๋๋ค. 'origin' ์ด๋ผ๋ ์ด๋ฆ์ Git์์ '์ฃผ์ ์๊ฒฉ ์ ์ฅ์'๋ฅผ ์๋ฏธํ๋ ๊ด์ต์ ์ธ ์ด๋ฆ์ ๋๋ค. ์ด๋ ๊ฒ ์งง์ ์ด๋ฆ์ผ๋ก ์ค์ ํ๋ค๋ฉด ๊ธด ์ฃผ์์ repository ๋ฅผ ์งง๊ฒ ์ฌ์ฉํ ์ ์๋ ํธ๋ฆฌ์ฑ์ ์ ๊ณตํฉ๋๋ค.
10. ' git push -u origin main ' ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด์ฃผ์ธ์.

'git push -u origin main' ๋ช ๋ น์ด๋ ๋ก์ปฌ ์ ์ฅ์์ ์๋ฃ๋ ์ปค๋ฐ๋ค์ ์๊ฒฉ ์ ์ฅ์๋ก ์ ์กํ๋ ์ญํ ์ ํฉ๋๋ค. ' -u ' ์ต์ ์ ์ต์ด ํธ์ ์์๋ง ํ์ฉํ๋ฉฐ, ๋ก์ปฌ main ๋ธ๋ฐ์น๊ฐ ์๊ฒฉ ์ ์ฅ์์ origin/main ๋ธ๋ฐ์น๋ฅผ ์ถ์ ํ๋๋ก ์ค์ ํฉ๋๋ค.
11. ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅ ํ, GitHub ๋ก๊ทธ์ธ์ฐฝ์ด ๋ํ๋ฉ๋๋ค. 'Sign in with your browser' ๋ฒํผ์ ๋๋ฌ ๋ก๊ทธ์ธ์ ์งํํด์ฃผ์ธ์.

Git์ ๋ก์ปฌ ์ปค๋ฐ ๋ด์ฉ์ ์๊ฒฉ ์ ์ฅ์๋ก ์ ์กํ๊ธฐ ์ ์, ์ฌ์ฉ์๊ฐ ํด๋น ์ ์ฅ์์ ์ฝ๋๋ฅผ ์ธ ๊ถํ์ด ์๋ ์ฌ๋์ธ์ง๋ฅผ ํ์ธํ๊ธฐ ์ํด ๋ก๊ทธ์ธ์ ์งํํ ์ ์๋๋ก ๋ก๊ทธ์ธ window ์ฐฝ์ ์ ๊ณตํฉ๋๋ค. ๊ถํ์ ํ์ธํ ์ ์๋๋ก ๋ก๊ทธ์ธ์ ์งํํฉ๋๋ค.
12. Authorize Git Credential Manager์ฐฝ์ด ๋ํ๋ฉ๋๋ค. 'Authorize git-ecosystem' ๋ฒํผ์ ๋๋ฌ ๋ง์ ๋ก๊ทธ์ธ์ ์งํํฉ๋๋ค.

13. ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅ ํ, ๋ก๊ทธ์ธ์ ์งํํฉ๋๋ค.


๋น๋ฐ๋ฒํธ ์ ๋ ฅ ํ, ๋ก๊ทธ์ธ์ ์ฑ๊ณตํ๋ฉด 'Authentication Succeeded' ๋ฉ์ธ์ง๊ฐ ์ถ๋ ฅ๋ ํ๋ฉด์ ํ์ธํฉ๋๋ค.
14. ๋ก๊ทธ์ธ ํ, Git Bash๋ก ๋์์๋ณด๋ฉด ์๊ฒฉ ์ ์ฅ์๋ก ์ปค๋ฐ๋ ํ์ผ๋ค์ด Push๋๊ฑธ ํ์ธํ ์ ์์ต๋๋ค.

15. Git Repository๋ฅผ ํ์ธํด๋ณด๋ฉด, README ํ์ผ์ด ์ ์์ ์ผ๋ก ์๊ฒฉ์ ์ฅ์๋ก Push ๋๊ฑธ ํ์ธํ ์ ์์ต๋๋ค.

๋ณ๊ฒฝ ์ฌํญ ์คํ ์ด์ง ๋ฐ ์ปค๋ฐ
1. ' git status ' ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด์ฃผ์ธ์.

'git status' ๋ช ๋ น์ด๋ ํ์ฌ Git ์ ์ฅ์์ ์ํ๋ฅผ ํ์ธํ๋ ๋ช ๋ น์ด์ ๋๋ค. ๋ฒ์ ๊ด๋ฆฌ ์์ ํ๋ฆ์์ ํ์ฌ ์ด๋ ์์น์์ ๋ฌด์์ ํด์ผํ๋์ง๋ฅผ ํ์ธํ ์ ์๋ ์ญํ ์ ํฉ๋๋ค. 'On branch main'์ผ๋ก main ๋ธ๋ฐ์น์ ์๋ค๋๊ฑธ ํ์ธํ ์ ์๊ณ , 'your branch is up to date with origin/main'์ผ๋ก ํธ์ํด์ผ ํ ์๋ก์ด ์ปค๋ฐ์ด ์์์ ์๋ฏธํฉ๋๋ค. ์ฆ, ์์ง ์คํ ์ด์ง ์์ญ์ ์ปค๋ฐ ํ์ง ์์์ผ๋ ์ปค๋ฐํ ๊ฒ ์๋ค๋ ๋ป์ด ๋๋๊ฒ์ด์ฃ . ๋นจ๊ฐ์์ผ๋ก ํ์๋๊ณ ์๋ ํ์ผ๋ค์ด ์ปค๋ฐํด์ผํ ํ์ผ๋ค์ ๋ํ๋ ๋๋ค.
2. ' git add . ' ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด์ฃผ์ธ์.

'git add .' ๋ช ๋ น์ด๋ ํ์ฌ ํด๋์ ์ปค๋ฐ ํด์ผํ ํ์ผ๋ค์ ์คํ ์ด์ง ์์ญ์ผ๋ก ์ฎ๊ธฐ๋ ๋ช ๋ น์ด์ ๋๋ค. ๊ทธ๋์ผ ์คํ ์ด์ง์ผ๋ก ์ฎ๊ฒจ์ง ํ์ผ๋ค์ ์ปค๋ฐํ ์ ์์ต๋๋ค. ๋ช ๋ น์ด ์ถ๋ ฅ ํ ๋ํ๋๋ warning ๋ฉ์์ง๋ ๋ฌด์ ๊ฐ๋ฅํ ๋ฉ์ธ์ง๋ก, ์ฌ์ฉ OS์ ๋ฐ๋ผ์ ์ค๋ฐ๊ฟ ์ฒ๋ฆฌ๊ฐ ๋ค๋ฅธ๋ฐ ํ์ฌ ํ์ผ๋ค์ LF ์คํ์ผ์ ์ค๋ฐ๊ฟ์ ๊ฐ์ง๊ณ ์์ง๋ง Windows ํ๊ฒฝ์์ ์ค ๋ฐ๊ฟ ์ถฉ๋์ ๋ง๊ธฐ ์ํด Git์ด ํ์ผ๋ค ๋ค๋ฃฐ ๋ CRLF๋ก ์๋ ๋ณํ๋๋ฉด์ ์ถ๋ ฅํ๋ ๋ฉ์์ง์ ๋๋ค.
3. ' git commit -m {์ฃผ์ ๋ด์ฉ}' ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด์ฃผ์ธ์.

์ปค๋ฐ ์, ํ์คํ ๋ฆฌ๋ฅผ ๋จ๊ฒจ์ค ์ ์๋๋ก ๋ฉ์์ง๋ฅผ ์์ฑํฉ๋๋ค.
4. ' git push -u origin main ' ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด์ฃผ์ธ์.

์คํ ์ด์ง ์์ญ์์ ์ปค๋ฐ์ ์งํํ์ผ๋, ์๊ฒฉ ์ ์ฅ์๋ก์ push๋ฅผ ์งํํฉ๋๋ค.
5. Pushํ Repository๋ฅผ ํ์ธํด๋ณด๋ฉด ์ ์์ ์ผ๋ก Push ๋ ํ๋ก์ ํธ ํ์ผ์ ํ์ธํ ์ ์์ต๋๋ค.

@Junesker