๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ช๋ฐ๋ธŒ์ฝ”์Šค

[Week1] Git ๋ช…๋ น์–ด

by megan07 2024. 2. 28.

 

 

๋ช…๋ น์–ด์—์„œ <>ํ‘œ์‹œ๋Š” ๊ตฌ๋ถ„์„ ์œ„ํ•ด ์ž‘์„ฑํ•œ ๊ฒƒ์ด๋ฏ€๋กœ ํ„ฐ๋ฏธ๋„์— ์ž…๋ ฅํ•  ๋•Œ๋Š” ์ƒ๋žตํ•˜๊ณ  ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”

๋งŒ์•ฝ git add <ํŒŒ์ผ๋ช…>์ด๋ผ๋ฉด

์‹ค์ œ๋กœ ํ„ฐ๋ฏธ๋„์— ์ž…๋ ฅํ•  ๋•Œ๋Š” git add test.txt 

git init ์ƒˆ๋กœ์šด Git ์ €์žฅ์†Œ๋ฅผ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.

ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์— .git์ด๋ผ๋Š” ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์ƒ์„ฑ๋˜๋ฉฐ, Git ์ €์žฅ์†Œ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.
git add <ํŒŒ์ผ๋ช…> ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ Staging Area์— ์ถ”๊ฐ€ํ•œ๋‹ค. 

๊ฐ„๋‹จํ•˜๊ฒŒ ๋งํ•˜๋ฉด ์ƒˆ๋กœ์šด ๋ฒ„์ „์— ํฌํ•จ๋  ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์˜ˆ)
git add test.txt
test.txtํŒŒ์ผ์„ staging area์— ์ถ”๊ฐ€
git commit Staging Area์— ์žˆ๋Š” ํŒŒ์ผ๋“ค์˜ ์Šค๋ƒ…์ƒท์„ ์ฐ์–ด์„œ ๋กœ์ปฌ ์ €์žฅ์†Œ์— ์˜๊ตฌ์ ์œผ๋กœ ์ €์žฅํ•œ๋‹ค.

๊ฐ„๋‹จํ•˜๊ฒŒ ๋งํ•˜๋ฉด git add๋กœ ์ถ”๊ฐ€ํ•œ ๋ชจ๋“  ํŒŒ์ผ๋“ค์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ† ๋Œ€๋กœ ์ƒˆ๋กœ์šด ๋ฒ„์ „์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค.

๋ณดํ†ต ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์„ค๋ช…์„ ํฌํ•จํ•˜๋Š” ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜ ์ด๋ฃจ์–ด์ง„๋‹ค.
์˜ˆ)
git commit -m "์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ์ž…๋ ฅ"
git push <์›๊ฒฉ์ €์žฅ์†Œ> <๋กœ์ปฌ ๋ธŒ๋žœ์น˜์ด๋ฆ„> ๋กœ์ปฌ ์ €์žฅ์†Œ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์›๊ฒฉ ์ €์žฅ์†Œ๋กœ ์ „์†กํ•œ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ์ด ๋ช…๋ น์–ด๋Š” ๋กœ์ปฌ ์ €์žฅ์†Œ์˜ ์ปค๋ฐ‹์„ ์›๊ฒฉ ์ €์žฅ์†Œ๋กœ ์—…๋กœ๋“œํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๊นƒํ—ˆ๋ธŒ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ๋กœ์ปฌ์—์„œ ์ €์žฅํ•œ ์ปค๋ฐ‹๋“ค์„ ๊นƒํ—ˆ๋ธŒ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์— ์—…๋กœ๋“œ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์˜ˆ)
git push origin main

= ๋กœ์ปฌ์˜ main ๋ธŒ๋žœ์น˜๋ฅผ origin(์›๊ฒฉ์ €์žฅ์†Œ)์˜ main ๋ธŒ๋žœ์น˜๋กœ ์—…๋กœ๋“œํ•˜๋Š” ๊ฒƒ
๋งŒ์•ฝ์— origin์— ํ•ด๋‹น ๋ธŒ๋žœ์น˜๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด, ๋งŒ๋“  ํ›„์— ์—…๋กœ๋“œํ•œ๋‹ค.


๊นƒ ๊ณต์‹ ๋ฌธ์„œ:
git push origin master

Find a ref that matches master in the source repository (most likely, it would find refs/heads/master),
and update the same ref (e.g. refs/heads/master) in origin repository with it.
If master did not exist remotely, it would be created.


git log ์ €์žฅ์†Œ์˜ ์ปค๋ฐ‹ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์กฐํšŒํ•œ๋‹ค.

์ปค๋ฐ‹ ๊ธฐ๋ก๋“ค์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
git status ํ˜„์žฌ ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ์˜ ์ƒํƒœ๋ฅผ ์กฐํšŒํ•œ๋‹ค.

๋ณ€๊ฒฝ๋œ ํŒŒ์ผ๋“ค์ด ์žˆ๋Š”์ง€, Staging Area์— ์–ด๋–ค ํŒŒ์ผ๋“ค์ด ์˜ฌ๋ผ๊ฐ€ ์žˆ๋Š”์ง€ ๋“ฑ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
git remote ์›๊ฒฉ ์ €์žฅ์†Œ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

์ฃผ๋กœ ์›๊ฒฉ ์ €์žฅ์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•˜๊ณ , ์›๊ฒฉ ์ €์žฅ์†Œ์˜ ์ •๋ณด๋ฅผ ํ™•์ธํ•˜๋Š” ๋“ฑ์˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

ํ˜„์žฌ ์„ค์ •๋œ ์›๊ฒฉ ์ €์žฅ์†Œ์˜ ์ด๋ฆ„ ํ™•์ธ:
git remote

์„ค์ •๋œ ๋ชจ๋“  ์›๊ฒฉ์ €์žฅ์†Œ ์ด๋ฆ„๊ณผ url ์กฐํšŒ:
git remote -v

์ถ”๊ฐ€:
git remote add ์›๊ฒฉ์ €์žฅ์†Œ๋ณ„์นญ(์ผ๋ฐ˜์ ์œผ๋กœ๋Š” origin) ์›๊ฒฉ์ €์žฅ์†ŒURL

์ œ๊ฑฐ:
git remote remove ์›๊ฒฉ์ €์žฅ์†Œ๋ณ„์นญ
git branch ๊นƒ ๋ธŒ๋žœ์น˜๋ฅผ ํ™•์ธํ•˜๊ณ  ์ถ”๊ฐ€ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

๊นƒ์— ์–ด๋–ค ๋ธŒ๋žœ์น˜๋“ค์ด ์žˆ๋Š”์ง€ ํ™•์ธ:
git branch

ํ˜„์žฌ ์ž‘์—… ์ค‘์ธ ๋ธŒ๋žœ์น˜๋Š” *๋กœ ๊ฐ•์กฐ๋œ๋‹ค.


๋ฆฌ๋ชจํŠธ ์ €์žฅ์†Œ์˜ ๋ธŒ๋žœ์น˜ ํ™•์ธ:
git branch -r


๋ธŒ๋žœ์น˜ ์ถ”๊ฐ€:
git branch <๋ธŒ๋žœ์น˜ ์ด๋ฆ„>



git checkout <๋ธŒ๋žœ์น˜ ์ด๋ฆ„> ์ž‘์—… ์ค‘์ธ ๋ธŒ๋žœ์น˜๋ฅผ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค.

ํ˜„์žฌ ์ž‘์—… ์ค‘์ธ ๋ธŒ๋žœ์น˜๊ฐ€ main์ธ๋ฐ
login ๋ธŒ๋žœ์น˜๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด

git checkout login
git fetch ์›๊ฒฉ ์ €์žฅ์†Œ์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ํ™•์ธ๋งŒ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค.
๋ณ€๊ฒฝ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ์ปฌ ๊นƒ์— ๊ฐ€์ ธ์˜ค์ง€๋Š” ์•Š๋Š”๋‹ค.

git fetch -p
์›๊ฒฉ ์ €์žฅ์†Œ์—์„œ ์‚ญ์ œ๋œ ๋ธŒ๋žœ์น˜๊ฐ€ ๋กœ์ปฌ์— ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ, ์ด๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ์ตœ์‹  ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๋Š” ์˜ต์…˜

git pull ์›๊ฒฉ ์ €์žฅ์†Œ์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ํ™•์ธํ•˜๊ณ  ์ตœ์‹  ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์‚ฌํ•˜์—ฌ ๋กœ์ปฌ ๊นƒ์— ๊ฐ€์ ธ์˜จ๋‹ค.