git ์‚ฌ์šฉ๋ฒ•

GitHub_git ํ•„์ˆ˜ ๋ช…๋ น์–ด & git ์‚ฌ์šฉ๋ฒ•

yeggrrr๐Ÿผ 2024. 3. 18. 21:00
728x90

Git & Github ๊ฐœ๋… ์ •๋ฆฌ


Git

โœ”๏ธ์ฝ”๋“œ ๋ณ€๊ฒฝ์  ๊ธฐ๋ก
โœ”๏ธ๋ฒ„์ „ ๊ด€๋ฆฌ ๋„๊ตฌ
โœ”๏ธ์†Œํ”„ํŠธ์›จ์–ด ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ฒด๊ณ„์ ์œผ๋กœ ์ถ”์ ํ•˜๊ณ  ํ†ต์ œํ•˜๋Š” ๊ฒƒ

 

์ด๊ฒŒ ๋ญ” ๋ง์ด์•ผ?๐Ÿง

๋งŒ์•ฝ ๊ณผ์ œ๋ฅผ ํ•˜๋‹ค๊ฐ€ ์ปดํ“จํ„ฐ๊ฐ€ ๊ณ ์žฅ์ด ๋‚˜์„œ ๋ชฝ๋•… ๋‚ ๋ผ๊ฐ„๋‹ค๋ฉด??
๐Ÿคฏ๐Ÿคฏ๐Ÿคฏ๐Ÿคฏ๐Ÿคฏ ๋จธ๋ฆฌ ํ„ฐ์ง! ๋จธ๋ฆฌ ์ฅ์–ด๋œฏ๊ธฐ.. ํ•œ์ˆจ..ํ‘ธ์šฑ.. ํ™” ์‚ญํžˆ๊ธฐ..๋‹ค์‹œ ์ฒ˜์Œ๋ถ€ํ„ฐ ์‹œ์ž‘..๐Ÿฅน

(์•ˆ๊ทธ๋ž˜๋„ ์ตœ๊ทผ์— ๋ธ”๋กœ๊ทธ ์ •๋ฆฌํ•˜๋‹ค๊ฐ€ ์‚ฌ์ดํŠธ ์—๋Ÿฌ๋‚˜์„œ ๊ฐ•์ œ ์ข…๋ฃŒ ๋‹นํ•˜๊ณ ..์‹น ๋‚ ๋ผ๊ฐ€์„œ ๋‹ค์‹œ ์ฒ˜์Œ๋ถ€ํ„ฐ ์“ด ์  ์žˆ์–ด์„œ ๊ฐ‘์ž๊ธฐ ์ƒ๊ฐ๋‚˜๋ฒ„๋ฆผ^0^)

๋ฐ”๋กœ ์ด๋Ÿฐ ๋ฌธ์ œ๋“ค์„ ํ•ด๊ฒฐํ•ด์ฃผ๋Š”๊ฒƒ์ด 'Git'์ด๋‹ค!

 

GitHub

GitHub์€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ฅผ ๋ฐฑ์—…ํ•˜๋Š” ์ €์žฅ์†Œ์ด๋‹ค.
→ ๋ฐฑ์—…๊ณผ ๊ณต์œ ๊ฐ€ ๊ฐ€๋Šฅํ•œ ์˜จ๋ผ์ธ ์ฝ”๋“œ ์ €์žฅ์†Œ

๋ฐฑ์—…๊ณผ ๊ณต์œ ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ˆ, GitHub์„ ์ด์šฉํ•ด์„œ ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ๋“ค๊ณผ ํ˜‘์—…์ด ๊ฐ€๋Šฅํ•˜๋‹ค!

์˜จ๋ผ์ธ ์ €์žฅ์†Œ (Github repository) ๋งŒ๋“ค๊ธฐ

https://github.com/

 

GitHub: Let’s build from here

GitHub is where over 100 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and fea...

github.com

ํ™ˆํŽ˜์ด์ง€ ์ ‘์† → ํšŒ์›๊ฐ€์ž… ๋ฐ ๋กœ๊ทธ์ธ → ์ขŒ์ธก Top Repositories - New(์ดˆ๋ก์ƒ‰) ํด๋ฆญ
→ Repository name ์ž…๋ ฅ
→ ์šฐ์ธก ํ•˜๋‹จ - Creat repository ํด๋ฆญ 

github์—์„œ New Repo ์ƒ์„ฑํ›„
git ์‚ฌ์šฉ ์ˆœ์„œ


<๋ฐฉ๋ฒ• 1>


โ‘ 
github์—์„œ  New repository ๋งŒ๋“ค๊ธฐ

โ‘ก ์ €์žฅํ•  ํŒŒ์ผ ๋งŒ๋“ค๊ธฐ (init ํ•˜๋ ค๋Š” ํŒŒ์ผ - ๋‚ด ์ปดํ“จํ„ฐ)

โ‘ข
ํ„ฐ๋ฏธ๋„์—์„œ ํ•ด๋‹น ํŒŒ์ผ๋กœ ์ด๋™ ํ›„  git init


โ‘ฃ XCode์—์„œ ํ•„์š”ํ•œ ํ”„๋กœ์ ํŠธ ํŒŒ์ผ ์ƒ์„ฑํ•˜๊ธฐ
(→ 1๋ฒˆ์—์„œ ๋งŒ๋“  ํŒŒ์ผ์— ์ƒ์„ฑ)


โ‘ค git remote add origin ๊นƒํ—™์ฃผ์†Œ
(→ ์ฃผ์†Œ ๋์— .git ์‚ญ์ œ ํ›„ Enter)

โ‘ฅ git pull origin main 


โ‘ฆ ์ž‘์—… ํ›„ - git add - git commit - git push ์ง„ํ–‰
→ git push ์—์„œ ์•ˆ๋œ๋‹ค๋ฉด,
์ค‘๊ฐ„์— ์žˆ๋Š” 'git push --set-upstream origin main' ์ด๋ ‡๊ฒŒ ์จ์žˆ๋Š”๊ฑฐ ๋ณต๋ถ™ Enter

 

<๋ฐฉ๋ฒ• 2>
- ๊ฐœ์ธ์ ์œผ๋กœ ์ด๊ฒŒ ํŽธํ•จ

โ‘  github์—์„œ New repository ์ƒ์„ฑ
(ex. Repo ์ด๋ฆ„: gitPrac)

โ‘ก ํ„ฐ๋ฏธ๋„์—์„œ ๋ฐฉ๊ธˆ ๋งŒ๋“  New Repositry ํŒŒ์ผ์„
์ €์žฅํ•˜๊ณ  ์‹ถ์€ ๊ณณ์œผ๋กœ ์ด๋™
(ex. Desktop)

โ‘ข ๊ฑฐ๊ธฐ๋‹ค๊ฐ€ → git clone ํ•ด๋‹น ๋ ˆํฌ์ง€ํ† ๋ฆฌ ์ฃผ์†Œ 

โ‘ฃ ์ €์žฅํ•˜๋ ค๋˜ ์žฅ์†Œ์— ํŒŒ์ผ์ด ์ž˜ ๋ถˆ๋Ÿฌ์™€์กŒ๋Š”์ง€ ํ™•์ธ
(Desktop์— gitPrac ํŒŒ์ผ์ด ์ƒ๊ฒผ๋‚˜?)

โ‘ฃ XCode์—์„œ ํ”„๋กœ์ ํŠธ ํŒŒ์ผ์„ ๋ถˆ๋Ÿฌ์˜จ ํŒŒ์ผ์— ๋งŒ๋“ค๊ธฐ
(๋ถˆ๋Ÿฌ์˜จ ํŒŒ์ผ = clone ํ•ด์˜จ gitPrac ํŒŒ์ผ) 

โ‘ค ์ž‘์—… ํ›„ ํ„ฐ๋ฏธ๋„์—์„œ ํ•ด๋‹น ํŒŒ์ผ๋กœ ์ด๋™
(ํ•ด๋‹น ํŒŒ์ผ = gitPrac)

โ‘ฅ git add - git commit - git push
(git add . → ์ „์ฒด / git add ํŒŒ์ผ์ด๋ฆ„ → ์ง€์ •)
(git commit -m "์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€")
(git push)

โ‘ฆ github์—์„œ ์ƒˆ๋กœ๊ณ ์นจ ํ•˜๊ณ , ์ž˜ ์˜ฌ๋ผ๊ฐ”๋Š”์ง€ ํ™•์ธ

๋!!


โ€ปgit ๋ช…๋ น์–ด ์‚ฌ์šฉํ•˜๊ณ , git status๋กœ ํ™•์ธํ•ด๋ณด๋ฉด์„œ ์ฝ์–ด๋ณด๊ธฐ!โ€ป




๐Ÿ’ก์ถ”๊ฐ€ํ•œ ์›๊ฒฉ ์ €์žฅ์†Œ ๋ชฉ๋ก ํ™•์ธ ๋ฐฉ๋ฒ•๐Ÿ’ก

โœ”๏ธ git remote

โœ”๏ธ git remote -v
→ ์ž์„ธํžˆ๋ณด๊ธฐ



Git ํ•„์ˆ˜ ๋ช…๋ น์–ด

 

git init git status git clone git checkout
git add git log git pull git merge
git commit git push git branch  

 

git init

- init์€ initialize(์ดˆ๊ธฐํ™”ํ•˜๋‹ค, ์ดˆ๊ธฐ ์„ธํŒ…ํ•˜๋‹ค)์˜ ์ค„์ž„๋ง์ด๋‹ค.
- ํ”„๋กœ์ ํŠธ ์‹œ์ž‘ ์ „ ๋”ฑ ํ•œ ๋ฒˆ๋งŒ ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค. (์—ฌ๋Ÿฌ ๋ฒˆ ์ž…๋ ฅํ•ด๋„ ๋ฌธ์ œX)
- ๋ฐ˜๋“œ์‹œ ์ •ํ™•ํ•œ ํ”„๋กœ์ ํŠธ ํด๋”(๊ฒฝ๋กœ)์—์„œ ์ž…๋ ฅํ•ด์•ผ ํ•œ๋‹ค. (โ˜…โ˜…โ˜…)

โ‘  ํ„ฐ๋ฏธ๋„ ์—ด๊ธฐ
โ‘ก ํ•ด๋‹น ํŒŒ์ผ๋กœ ์ด๋™ (cd)
โ‘ข ์ž…๋ ฅ์ฐฝ์—์„œ ๋ณธ์ธ์˜ ํ”„๋กœ์ ํŠธ ๊ฒฝ๋กœ ํ™•์ธ ('yeggrrr-MacBookPro > ~/Desktop/gitEx')
ํ˜น์€ pwd ๋ช…๋ น์–ด๋กœ ํ˜„์žฌ ๊ฒฝ๋กœ ํ™•์ธ
โ‘ฃ git init → Enter
โ‘ค "initialized empty Git repository in ~~~ " ์ด๋ผ๊ณ  ๋‚˜์˜จ๋‹ค๋ฉด ์„ฑ๊ณต!

์ด์ œ git ์ด๋ผ๋Š” ํด๋”(์ˆจ๊ฒจ์ง„ ํด๋”)๊ฐ€ ์ƒ์„ฑ๋œ ๊ฒƒ์ด๋‹ค.(ls -a ๋ช…๋ น์–ด๋กœ ํ™•์ธ ๊ฐ€๋Šฅ)

git add

- ํ”„๋กœ์ ํŠธ์—์„œ ์ถ”๊ฐ€ & ๋ณ€๊ฒฝ & ์‚ญ์ œ ๋“ฑ์„ ํ•œ ํ›„ github์— ์˜ฌ๋ฆฌ๊ณ  ์‹ถ์„ ๋•Œ
- ์ €์žฅํ•˜๊ธฐ ์ „ ์ €์žฅํ•  ํŒŒ์ผ์„ ์ง€์ •ํ•˜๋Š” ๊ฒƒ

โ‘  ํ„ฐ๋ฏธ๋„ ์ฐฝ์—์„œ ํ•ด๋‹น ํŒŒ์ผ๋กœ ์ด๋™(๊ทธ ํŒŒ์ผ๋งŒ ์˜ฌ๋ฆฌ๊ณ  ์‹ถ์„ ๋•Œ)
โ‘ก git add ํŒŒ์ผ๋ช… → Enter

 

git commit

- ์‹ค์ œ๋กœ ์ €์žฅํ•˜๋Š” ๋ช…๋ น์–ด
- github์— ์˜ฌ๋ฆด ๋•Œ, ๋ฉ”์„ธ์ง€๋ฅผ ๋‚จ๊ธธ ์ˆ˜ ์žˆ๋‹ค.
- "๋ฉ”์„ธ์ง€ ์ž‘์„ฑ" ์—ฌ๊ธฐ์—๋Š” ์ผ๊ด€์„ฑ์žˆ๊ณ , ๋ช…๋ฃŒํ•˜๊ฒŒ ์“ฐ๋Š”๊ฒŒ ์ข‹๋‹ค. (ex. ~์ฝ”๋“œ ์ถ”๊ฐ€, ~์ˆ˜์ •, ~์‚ญ์ œ, ...)

โ‘  git commit -m "๋ฉ”์„ธ์ง€ ์ž‘์„ฑ" → Enter

 

git status

- ์–ด๋–ค ํŒŒ์ผ์ด ๋ณ€๊ฒฝ๋๋Š”์ง€, ์–ด๋–ค ํŒŒ์ผ์ด add(์ง€์ •) ๋๋Š”์ง€ ๋“ฑ ๋ณ€๊ฒฝ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๋Š” ๋ช…๋ น์–ด
- ์ฝ”๋“œ์˜ ๋ณ€๊ฒฝ์€ ์žˆ์ง€๋งŒ ์ €์žฅ์„ ํ•˜์ง€ ์•Š๋Š” ํŒŒ์ผ์€ ๋ถ‰์€์ƒ‰์œผ๋กœ ํ‘œ์‹œ๋œ๋‹ค.

โ‘  git status → Enter

 

git add .

- ์ (.)์˜ ์˜๋ฏธ = '๋ชจ๋“ '
- ์ง€์ •ํ•  ํŒŒ์ผ์ด ๋„ˆ๋ฌด ๋งŽ์•„์„œ ํ•˜๋‚˜ํ•˜๋‚˜ ์ง€์ •ํ•˜๊ธฐ ๋ฒˆ๊ฑฐ๋กญ๋‹ค๋ฉด?

- ํ”„๋กœ์ ํŠธ์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ํ•œ ๋ฒˆ์— ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

โ‘  git add . → Enter
(add (ํ•œ ์นธ ๋›ฐ๊ณ ) ์ (.))
โ‘ก git commit -m "๋ฉ”์„ธ์ง€์ž‘์„ฑ" → Enter
โ‘ข git status → Enter
'nothing to commit, working tree clean'์ด๋ผ๊ณ  ๋œธ. (๋”์ด์ƒ ์ €์žฅํ•  ๊ฒƒ์ด ์—†๋‹ค๋Š” ์˜๋ฏธ) 

 

git log

- commit ๊ธฐ๋ก์„ ํ™•์ธํ•˜๋Š” ๋ช…๋ น์–ด
- ์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€๋กœ ์ฝ”๋“œ ๋ณ€๊ฒฝ์  ์ถ”์ธก์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

โ‘  git log → Enter
โ‘ก ํ‚ค๋ณด๋“œ q → Click (log ์ฐฝ ๋น ์ ธ๋‚˜์˜ค๋Š” ํ‚ค)


- git diff ์ฝ”๋“œ ๋ณ€๊ฒฝ ํ™•์ธ ๊ฐ€๋Šฅ
- git reset ๊ณผ๊ฑฐ๋กœ ๋Œ์•„๊ฐ€๊ธฐ ๊ฐ€๋Šฅ
(์ด ๋‘๊ฐ€์ง€๋Š” ์•„์ง ๋ชฐ๋ผ์„œ ๊ณต๋ถ€ํ•˜๊ณ  ์ •๋ฆฌํ•  ์˜ˆ์ •)

 

git push

- ์ถ”๊ฐ€๋กœ ์ˆ˜์ •๋œ ์ฝ”๋“œ๋ฅผ github์— ๋ฐ˜์˜ํ•˜๋Š” ๋ช…๋ น์–ด์ด๋‹ค.
- git add, git commit -m "๋ฉ”์„ธ์ง€ ์ž‘์„ฑ" → ์œผ๋กœ ํŒŒ์ผ์„ ์ง€์ •, ์ €์žฅ ํ›„ git push๋ฅผ ํ•˜๋Š” ๊ฒƒ.

โ‘  git push → Enter
(๋ฐ‘์— 3๊ฐ€์ง€ ๋ช…๋ น์–ด ์ž…๋ ฅ ์ „์—๋Š” git push origin main → Enter)


ํ•˜์ง€๋งŒ, ์ฒซ ์—…๋กœ๋“œ ์‹œ์— add - commit - push ์ „์— ํ•ด์•ผํ•  ๋ช…๋ น์–ด๊ฐ€ ์žˆ๋‹ค.


์ฒซ ์—…๋กœ๋“œ ์‹œ 3๊ฐ€์ง€ ๋ช…๋ น์–ด ์˜๋ฏธ

๋นจ๊ฐ„ ๋„ค๋ชจ 3์ค„ ๋ณต์‚ฌํ•˜๊ธฐ → ํ„ฐ๋ฏธ๋„ ์—ด์–ด์„œ ๋ถ™์—ฌ๋„ฃ๊ธฐ → Enter


1) git remote add origin <github ์ฃผ์†Œ>
→ "github ์ฃผ์†Œ๋ฅผ origin ์ด๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์ €์žฅํ•œ๋‹ค."

2) git branch -M main
→ "ํ˜„์žฌ ๋ธŒ๋žœ์น˜๋ช…(master)์„ main์œผ๋กœ ๋ฐ”๊พผ๋‹ค."

3) git push -u origin main
→ "git push ๋ผ๋Š” ๋ช…๋ น์–ด๋งŒ ์ž…๋ ฅํ•ด๋„ git push origin main ํ•ด์ค˜!"


 

Github์œผ๋กœ ํ˜‘์—…์€ ์–ด๋–ป๊ฒŒ ํ•˜์ง€?

โ‘  ํ˜‘๋ ฅ์ž ๋“ฑ๋กํ•˜๊ธฐ
github ์‚ฌ์ดํŠธ ๋กœ๊ทธ์ธ - ์ƒ๋‹จ์— Settings - ์ขŒ์ธก Collaborators - Add people ํด๋ฆญ

โ‘ก ํŒ€์žฅ์€ ํŒ€์›์—๊ฒŒ ์ฃผ์†Œ ๊ณต์œ ํ•ด์ฃผ๊ธฐ
Github repository -  github ์ฃผ์†Œ ๋ณต์‚ฌ(→ < >codeโ–ผ ๋ˆ„๋ฅด๋ฉด ์žˆ์Œ)
 


git clone

- ์ด ๋ช…๋ น์–ด๋กœ github์— ์žˆ๋Š” ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋ณต์ œํ•ด ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.
- repository github ์ฃผ์†Œ ํ•„์š”ํ•˜๋‹ค.
- ํ•ด๋‹น ๋ช…๋ น์–ด๋ฅผ ํ•˜๋ฉด, ํ”„๋กœ์ ํŠธ ํŒŒ์ผ๋“ค์ด ๋“ค์–ด์˜ค๊ฒŒ ๋œ๋‹ค.

โ‘  git clone ๋ ˆํฌ์ง€ํ† ๋ฆฌ ์ฃผ์†Œ .
(๋’ค์— (ํ•œ์นธ ๋›ฐ๊ณ ) ์ (.)) → ์ (.)์˜ ์˜๋ฏธ = ํ˜„์žฌ ์œ„์น˜
โ€ป ์ (.)์€ ์ƒ๋žต ๊ฐ€๋Šฅ.

clone ํ•ด์„œ ๊ณต์œ ๋ฐ›์€ ํŒŒ์ผ์—์„œ ์ž‘์—…ํ•˜๊ณ , ์œ„์—์„œ ์ •๋ฆฌํ–ˆ๋˜๋Œ€๋กœ
git add - git commit - git push
ํ•ด์„œ ๋ณ€๊ฒฝ๋œ ๋ถ€๋ถ„ ์˜ฌ๋ฆฌ๋ฉด ๋จ!

 

git pull

- ์›๊ฒฉ(remote)์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์žˆ๋Š” ์ƒํƒœ์—์„œ  git push๋ฅผ ํ•ด๋ฒ„๋ฆฌ๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ error๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. 

ex) ์—ฌ๋Ÿฌ ๋ช…์ด ์ž‘์—…์„ ํ•˜๋ฉด์„œ remote์™€ local์— ์ฐจ์ด๊ฐ€ ์ƒ๊ธด ๊ฒฝ์šฐ.
('error - hint. use 'git pull' before pushing again.' → "git push ์ „์— git pull์„ ๋จผ์ € ํ•˜์„ธ์š”.")

- ์ตœ์‹  ์ƒํƒœ์—์„œ ์ž‘์—…์„ ํ•˜๋ ค๋ฉด, remote์˜ ์ฝ”๋“œ๋ฅผ ๋จผ์ € git pull๋กœ ๊ฐ€์ ธ์˜ค๊ณ ๋‚˜์„œ git push ํ•ด์•ผํ•œ๋‹ค.

โ‘  git pull origin ๋ธŒ๋žœ์น˜๋ช… → Enter



pull์€ remote์˜ ์ตœ์‹  ์ƒํƒœ์˜ ์ฝ”๋“œ๋ฅผ local๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๊ณ ,

clone์€ ์ตœ์ดˆ์— ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ํ†ต์งธ๋กœ ๋ณต์ œํ•ด์˜ฌ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.




git pull ์„ ํ•˜๊ณ , ์ด๋Ÿฌํ•œ ๊ฒฝ๊ณ ๋ฌธ์ด ๋œฌ๋‹ค๋ฉด??

git pull ๊ฒฝ๊ณ ๋ฌธ

๋นจ๊ฐ„์ƒ‰ ๋„ค๋ชจ ์•ˆ์— ์žˆ๋Š” ์ฒซ ๋ฒˆ์งธ ์ค„(git config pull.rebase false)์„ ๊ทธ๋Œ€๋กœ ์ž…๋ ฅ ํ›„ Enter.
๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œ git pull origin main ์ž…๋ ฅํ•˜๋ฉด ์ •์ƒ์ ์œผ๋กœ ๋œ๋‹ค.

์ดํ›„์— ๋งŒ์•ฝ ํ„ฐ๋ฏธ๋„์— ์•„๋ž˜์™€ ๊ฐ™์€ 'vim ์—๋””ํ„ฐ'๊ฐ€ ๋– ์„œ ์•„๋ฌด๊ฒƒ๋„ ์ž…๋ ฅ์ด ์•ˆ๋œ๋‹ค๋ฉด!

โ‘  ํ‚ค๋ณด๋“œ esc
โ‘ก ํ‚ค๋ณด๋“œ :
โ‘ข ํ‚ค๋ณด๋“œ wq
โ‘ฃ ํ‚ค๋ณด๋“œ enter

โ€ป w: write, q: quit

 

 ์ถฉ๋Œ(Conflict) ํ•ด๊ฒฐํ•˜๊ธฐ

git pull ๋ช…๋ น์–ด๋กœ ๊ฐ€์ง€๊ณ  ์™”๋Š”๋ฐ, ์ฝ”๋“œ๊ฐ€ ์ด์ƒํ•ด์กŒ๋‹ค..?

"conflicts๋ฅผ fixํ•ด์„œ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•˜์„ธ์š”."๋ผ๋Š” ๋ฉ˜ํŠธ๊ฐ€ ๋–ด๋‹ค๋ฉด?
์ถฉ๋Œ์ด ๋ฐœ์ƒํ•œ ํŒŒ์ผ ํ™•์ธ!

์ด๋ ‡๊ฒŒ ๋˜์–ด์žˆ์„ ๊ฒƒ์ด๋‹ค.

โ‘  <<<<<<< HEAD ์‚ญ์ œ
โ‘ก ======= ์‚ญ์ œ
โ‘ข >>>>>>> 41829.... ์‚ญ์ œ
โ‘ฃ ์›ํ•˜๋Š” ์ฝ”๋“œ๋กœ ์ˆ˜์ •

์ด๋ ‡๊ฒŒ '์ถฉ๋Œ(Conflict)' ํ•ด๊ฒฐ ํ›„ ๋‹ค์‹œ git push ํ•˜๋ฉด ๋จ.



์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋Š” ์ด์œ 

๊ฐ™์€ ํŒŒ์ผ์˜ ๊ฐ™์€ ์œ„์น˜์— ์ฝ”๋“œ๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ.
A : index.swift์˜ 2๋ฒˆ์งธ ์ค„ ์ฝ”๋“œ ๋ณ€๊ฒฝ
B : index.swift์˜ 2๋ฒˆ์งธ ์ค„ ์ฝ”๋“œ ๋ณ€๊ฒฝ 


 


git init git status git clone git switch
git add git log git pull git checkout
git commit git push git branch git merge

 

git branch

โ‘  git branch ๋ธŒ๋žœ์น˜์ด๋ฆ„ → Enter
โ‘ก git branch → Enter

ex) ๋ธŒ๋žœ์น˜์ด๋ฆ„: login

'git branch ๋ธŒ๋žœ์น˜์ด๋ฆ„'์œผ๋กœ ๋ธŒ๋žœ์น˜๋ฅผ ๋งŒ๋“ค์—ˆ์œผ๋‹ˆ, ๊ทธ ๋งŒ๋“  branch๋กœ ์ด๋™์„ ํ•ด์•ผํ•œ๋‹ค.
๋ฐ”๋กœ ์•„๋ž˜ ์žˆ๋Š” ๋ช…๋ น์–ด๊ฐ€ ๋ฐ”๋กœ ๊ทธ ์ด๋™ํ•˜๋Š” ๋ช…๋ น์–ด์ด๋‹ค.

 

git switch ํ˜น์€ git checkout

- ๋ธŒ๋žœ์น˜ ์ด๋™ ๋ช…๋ น์–ด

โ‘  git switch ๋ธŒ๋žœ์น˜์ด๋ฆ„ → Enter
Switched to branch '๋ธŒ๋žœ์น˜์ด๋ฆ„'  ์ด ๋œจ๋ฉด์„œ, ๋ธŒ๋žœ์น˜๊ฐ€ ์ด๋™๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ.

๊ทธ๋Ÿผ git checkout์€ ๋ญ์ง€?๐Ÿง
→ ๋‘ ๊ฐœ๊ฐ€ ๊ฐ™์€ ๋ช…๋ น์–ด์ด์ง€๋งŒ, ์—ฌ์ „ํžˆ checkout์„ ์“ฐ๋Š” ์‚ฌ๋žŒ๋“ค๋„ ์žˆ์–ด์„œ ์•Œ์•„๋‘์ž.

๋ธŒ๋žœ์น˜ ํ•œ ๋ฒˆ์— ์ƒ์„ฑ & ์ด๋™

โ‘  git switch -c ๋ธŒ๋žœ์น˜์ด๋ฆ„ → Enter
(ํ˜น์€ git checkout -b ๋ธŒ๋žœ์น˜์ด๋ฆ„)

 

git merge

์ฝ”๋“œ ์ง  ๋ธŒ๋žœ์น˜๋ฅผ main์— ํ•ฉ์น˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด
์—ฌ๊ธฐ์„œ main =  '์ตœ์ข…๋ธŒ๋žœ์น˜์ด๋ฆ„'


โ‘  git switch ์ตœ์ข…๋ธŒ๋žœ์น˜์ด๋ฆ„ → Enter
- ์ตœ์ข…๋ธŒ๋žœ์น˜๋กœ ๋จผ์ € ์ด๋™ํ•˜๊ธฐ

โ‘ก git merge ํ•ฉ์น  ๋ธŒ๋žœ์น˜์ด๋ฆ„ → Enter
- ํ•ฉ์น˜๊ธฐ


Pull Request ํ™œ์šฉํ•˜๊ธฐ
๊ทผ๋ฐ, ์‚ฌ์‹ค 'git merge'๋Š” ์ž˜ ์•ˆ ์“ด๋‹ค..! ๐Ÿ˜ 

github(์˜จ๋ผ์ธ ์ €์žฅ์†Œ)์—์„œ๋„ merge๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
github์—์„œ ํ•ฉ์น˜๋ฉด ์ข‹์€ ์ ์ด ์ฝ”๋“œ๋ฆฌ๋ทฐ๋ฅผ ํ•œ ํ›„ ํ•ฉ์น  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.๐Ÿ‘๐Ÿป


<๋ฐฉ๋ฒ•>

โ‘  ์ƒˆ๋กœ์šด ๋ธŒ๋žœ์น˜์—์„œ ์ˆ˜์ •๋œ ์ฝ”๋“œ ์ €์žฅํ•˜๊ธฐ
(git add . → git commit -m "์ €์žฅ ๋ฉ”์„ธ์ง€")

โ‘ก github์— ์—…๋กœ๋“œํ•˜๊ธฐ
(git push origin ๋ธŒ๋žœ์น˜์ด๋ฆ„)

โ‘ข github์œผ๋กœ ์ด๋™ (์˜จ๋ผ์ธ ์‚ฌ์ดํŠธ)

โ‘ฃ Compare & pull request ํด๋ฆญ

โ‘ค ์ž‘์„ฑ ํ›„, Create pull request ํด๋ฆญ

โ‘ฅ Merge pull request ํด๋ฆญ
โ‘ฆ Confirm merge ํด๋ฆญ

 

 


ํŒ€ ํ”„๋กœ์ ํŠธ git & github ํ™œ์šฉ๋ฒ•

 

โ–ท ์ดˆ๊ธฐ ์…‹ํŒ… โ—


โ‘  ํŒ€์žฅ: ์ดˆ๊ธฐ ์ฝ”๋“œ ์ž‘์„ฑ ๋ฐ github ์—…๋กœ๋“œ
- ํด๋” ์ƒ์„ฑ
- ์ดˆ๊ธฐ ์ฝ”๋“œ ์ž‘์„ฑ
- git init, add, commit
- Github repository ์ƒ์„ฑ
- Github ์—…๋กœ๋“œ (git push)

โ‘ก ํŒ€์žฅ: dev(ํ˜น์€ develop) ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ
- git switch -c dev
- git push origin dev

โ‘ข Github์—์„œ dev ๋ธŒ๋žœ์น˜๋ฅผ default๋กœ ์„ค์ •




โ‘ฃ ํŒ€์žฅ: Collaborator๋กœ ํŒ€์›๋“ค ๋“ฑ๋ก
โ‘ค ํŒ€์›: git clone ํ•˜๊ธฐ



โ–ท ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ ์‹œ์ž‘ โ—


โ‘  ๊ธฐ๋Šฅ ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ ๋ฐ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ
- git switch -c ๊ธฐ๋Šฅ๋ธŒ๋žœ์น˜์ด๋ฆ„

โ‘ก ์ฝ”๋“œ ์ž‘์„ฑ ํ›„ ์—…๋กœ๋“œ
- git add .
- git commit -m "๋ฉ”์„ธ์ง€ ์ž‘์„ฑ"
- git push origin ๊ธฐ๋Šฅ๋ธŒ๋žœ์น˜์ด๋ฆ„

โ‘ข Pull Request ์ƒ์„ฑ
- ์œ„์— ์ •๋ฆฌํ•œ Pull Request ๊ทธ๋Œ€๋กœ ์ง„ํ–‰

โ‘ฃ ์ฝ”๋“œ ์ž‘์„ฑ์ž: ๋ฆฌ๋ทฐ ์š”์ฒญํ•˜๊ธฐ

- ํŒ€์› ํด๋ฆญ

โ‘ค ์ฝ”๋“œ ๋ฆฌ๋ทฐ์–ด: ๋ฆฌ๋ทฐํ•˜๊ธฐ
- ๋ฆฌ๋ทฐ ์ž‘์„ฑํ›„, Start a review ํด๋ฆญ
- ๋ชจ๋“  ๋ฆฌ๋ทฐ ๋‹ค ๋๋‚ธ ํ›„, finish your review ํด๋ฆญ
- Comment, Approve, Request changes ์ค‘ ์„ ํƒ
- Submit review ํด๋ฆญ


โ–ท ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ โ—

โ‘  ๋‚ด ๋กœ์ปฌ์˜ dev์—๋„ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ๋ฐ˜์˜
- dev ๋ธŒ๋žœ์น˜๋กœ ์ด๋™ (git switch dev)
- git pull origin dev

โ‘ก ๋‹ค์Œ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ
- ๊ธฐ๋Šฅ ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ ๋ฐ ์ฝ”๋“œ ์ž‘์„ฑ
- git add, commit, push
- Pull Request ์ƒ์„ฑ ๋ฐ ์ฝ”๋“œ ๋ฆฌ๋ทฐ
- ๋‚ด ๋กœ์ปฌ์—์„œ ์ถฉ๋Œ ํ•ด๊ฒฐ ๋ฐ ํ…Œ์ŠคํŠธ
- ์ฝ”๋“œ ์—…๋กœ๋“œ ๋ฐ merge


 

728x90