[Git ํŠน๊ฐ•] 1. Git & Github ๊ธฐ๋ณธ ๊ฐœ๋… ๋ฐ ๊ธฐ๋ณธ ๋ช…๋ น์–ด (pwd, ls, ls -a, cd, mkdir, touch / init, add, commit, status, log, push, clone, pull)
๋ฐ˜์‘ํ˜•

 

 


 

1. ํ•„์ˆ˜ ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด (git ๋ช…๋ น์–ด ์•„๋‹˜)

 

  • ์•ฑํŠธ๋ž™์€ vscode ํ„ฐ๋ฏธ๋„ ๋Œ€์‹ , ํ„ฐ๋ฏธ๋„(๋งฅOS), git bash(์œˆ๋„์šฐ)๋กœ ์ง„ํ–‰

 

 

1. pwd (print working directory)

 

 

  • ๋‚ด๊ฐ€ ์ž‘์—…ํ•˜๊ณ  ์žˆ๋Š” ํด๋”๋ฅผ ๋ณด์—ฌ๋‹ฌ๋ผ๋Š” ๋œป
  • ์ฐธ๊ณ : ~ ๋Š” ํ™ˆ(Home)์ด๋ผ๋Š” ๊ฒฝ๋กœ์ด๋ฉฐ, ์šฐ๋ฆฌ๊ฐ€ ๋ณด๋Š” ๋ฐ”ํƒ•ํ™”๋ฉด ๋ณด๋‹ค ํ•œ๋‹จ๊ณ„ ๋†’์€ ํ™ˆ

 

 

2. ls (list)

 

 

  • ๋‚ด ํด๋” ์•ˆ์— ์žˆ๋Š” ํด๋” & ํŒŒ์ผ ๋‚ด์—ญ์„ ๋ณด์—ฌ์คŒ
  • list๋ผ๋Š” ๋œป์ด๋ฏ€๋กœ ๋Œ€๋ฌธ์ž ์•„์ด(I)๊ฐ€ ์•„๋‹ˆ๋ผ ์†Œ๋ฌธ์ž ์—˜(l)์ž„

 

 

3. ls -a (list all)

 

 

  • ์ˆจ๊ฒจ์ง„ ํŒŒ์ผ(๋ณดํ†ต . ์œผ๋กœ ์‹œ์ž‘ํ•จ)๋„ ๋ชจ๋‘ ๋ณผ ์ˆ˜ ์žˆ์Œ

 

 

4. cd ํด๋”๋ช… (change directory)

 

 

  • ls ๋ช…๋ น์–ด์—์„œ ํ™•์ธ๋œ ํด๋”๋กœ ์ด๋™ ๊ฐ€๋Šฅ
    ๋งˆ์น˜ ๋ฐ์Šคํฌํƒ‘์˜ ํด๋”๋ฅผ ๋”๋ธ” ํด๋ฆญํ•ด์„œ ๋“ค์–ด๊ฐ„ ๊ฒƒ๊ณผ ๊ฐ™์€ ํšจ๊ณผ
  • ๋‹น์—ฐํ•˜์ง€๋งŒ cd ์—ฌ๋Ÿฌ๋ฒˆ ๊ฐ€๋Šฅ
  • cd .. ์œผ๋กœ ํ•œ ๋‹จ๊ณ„ ์œ„์˜ ํด๋”๋กœ ๋‹ค์‹œ ์ด๋™ ๊ฐ€๋Šฅ
  • cd ํด๋”๋ช…/ํด๋”๋ช… ์œผ๋กœ ํ•œ ๋ฒˆ์— ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ์Œ (์˜ˆ. Desktop/javascript)
  • ํด๋”๋ช…์— ๊ณต๋ฐฑ์ด ์žˆ์„ ๊ฒฝ์šฐ "ํด๋”๋ช…" ํ˜•์‹์œผ๋กœ ์ณ์•ผ ์˜ค๋ฅ˜๊ฐ€ ์—†์Œ

 

 

5. mkdir ํด๋”๋ช… (make directory)

 

 

  • ํ˜„์žฌ ๊ฒฝ๋กœ์—์„œ ํด๋”๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ช…๋ น์–ด

 

 

 

6. touch ํŒŒ์ผ๋ช…

 

 

  • ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๋Š” ๋ช…๋ น์–ด
  • text ๋ฉ”๋ชจ์žฅ ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค๋ฉด touch test.txt

 

 

 


 

2. Git & Github์˜ ๊ฐœ๋…

 

1. ์ผ์ƒ ์ƒํ™œ๋กœ ์•Œ์•„๋ณด๋Š” Git

  • ๊ต์ˆ˜๋‹˜์ด ๊ณผ์ œ๋ฅผ ๋ƒˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž
  • ๊ณผ์ œ๊ฐ€ ๊น”๋”ํ•œ ๋ ˆํฌํŠธ ํ•˜๋‚˜๋กœ ๋งŒ๋“ค์–ด ์ง€๋ฉด ์ข‹์ง€๋งŒ, ํ˜„์‹ค์ ์œผ๋กœ ์ˆ˜์ • ์ž‘์—… ๋ฐ ํŒŒ์ผ์ด ๋„ˆ๋ฌด ๋งŽ์„ ๊ฒƒ์ด๋‹ค
    ์ตœ์ข….ppt ์ตœ์ข…์˜์ตœ์ข….ppt ์ตœ์ข…์˜์ตœ์ข…์˜์ตœ์ข….ppt 
  • ๋ฌธ์ œ์ : ํŒŒ์ผ์ด ๋งŽ์•„์„œ ์ง€์ €๋ถ„ํ•ด์ง€๊ณ , ๊ฐ ํŒŒ์ผ์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ๊ธฐ๋ก์ด ์—†์–ด์„œ ๋ญ๊ฐ€ ๋ญ”์ง€ ์ž์„ธํžˆ ์•Œ ์ˆ˜๊ฐ€ ์—†์Œ

 

 

  • Git์€ ์ด๋Ÿฌํ•œ (1) ํŒŒ์ผ, ํด๋” ๋ณต์‚ฌ ๊ธฐ๋Šฅ + (2) ๋ณ€๊ฒฝ ๊ธฐ๋ก ๊ธฐ๋Šฅ ์„ ํ•ฉ์นœ ๊ฒƒ์ด๋‹ค.
  • ์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด: ์ฝ”๋“œ ๋ณ€๊ฒฝ์  ๊ธฐ๋ก
  • ์–ด๋ ต๊ฒŒ ๋งํ•˜๋ฉด: ๋ฒ„์ „ ๊ด€๋ฆฌ ๋„๊ตฌ (ํ˜•์ƒ ๊ด€๋ฆฌ ๋„๊ตฌ)
    = ์†Œํ”„ํŠธ์›จ์–ด์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ฒด๊ณ„์ ์œผ๋กœ ์ถ”์ ํ•˜๊ณ  ํ†ต์ œํ•˜๋Š” ๊ฒƒ (๋ฉด์ ‘์šฉ)
  • ๋กœ๊ทธ์•„์›ƒ ๊ธฐ๋Šฅ ๋‹จ๊ณ„์—์„œ ๊ฑท์žก์„ ์ˆ˜ ์—†๋Š” ์—๋Ÿฌ๊ฐ€ ๋–ด๋‹ค๋ฉด, ๊ณผ๊ฑฐ์˜ ์ฝ”๋“œ ๊ธฐ๋ก์œผ๋กœ ์‰ฝ๊ฒŒ ๋˜๋Œ์•„๊ฐ€๊ธฐ ๊ฐ€๋Šฅ

 

 

2. ์ผ์ƒ์ƒํ™œ๋กœ ์•Œ์•„๋ณด๋Š” Github

  • ๊ณผ์ œํ•˜๊ณ  ์žˆ๋‹ค๊ฐ€ ์ปดํ“จํ„ฐ๊ฐ€ ๊ณ ์žฅ๋‚œ๋‹ค๋ฉด? ๋‹ค์‹œ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋งŒ๋“ค์–ด์•ผ ํ•จ
  • ๋”ฐ๋ผ์„œ ์ƒํ™ฉ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด ์˜จ๋ผ์ธ(๊ตฌ๊ธ€ ๋“œ๋ผ์ด๋ธŒ ๋“ฑ)์œผ๋กœ ๋ฐฑ์—…์„ ํ•ด๋†“์Œ

 

 

  • Github๋Š” ์ด๋ ‡๊ฒŒ ๋ฐฑ์—…๊ณผ ๊ณต์œ ๊ฐ€ ๊ฐ€๋Šฅํ•œ ์˜จ๋ผ์ธ ์ฝ”๋“œ ์ €์žฅ์†Œํ˜‘์—… ๊ฐ€๋Šฅ
  • ์˜จ๋ผ์ธ ์—…๋กœ๋“œ -> ํŒ€์›๋“ค์—๊ฒŒ ์‰ฝ๊ฒŒ ๊ณต์œ ๋„ ๊ฐ€๋Šฅ

 

 


 

 

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

 

 

  • 1. `git init`
  • 2. `git add <ํŒŒ์ผ๋ช…>`  ํ˜น์€ `git add .`
  • 3. `git commit -m "๊ธฐ๋Šฅ ๊ฐœ๋ฐœ๊ณผ ๊ด€๋ จ๋œ ๊ธฐ๋ก"`
  • 4. `git status`
  • 5. `git log`
  • 6. `git push`
  • 7. `git clone`
  • 9. `git pull` (+ ์ปจํ”Œ๋ฆญํŠธ(Conflict) ํ•ด๊ฒฐ๋ฒ•)
  • 10. `git branch`
  • 11. `git switch <๋ธŒ๋žœ์น˜๋ช…>` ํ˜น์€ `git checkout <๋ธŒ๋žœ์น˜๋ช…>`
  • 12. `git merge`
  • 13. `git stash`

 

 

1. git init : ์ฝ”๋“œ ๊ด€๋ฆฌ๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๋ช…๋ น์–ด

 

 

  • intialize (์ดˆ๊ธฐํ™”ํ•˜๋‹ค, ์ดˆ๊ธฐ ์„ธํŒ…ํ•˜๋‹ค)์˜ ์ค„์ž„๋ง
  • ํ”„๋กœ์ ํŠธ ์‹œ์ž‘ ์ „ ๋”ฑ ํ•œ ๋ฒˆ๋งŒ ์ž…๋ ฅํ•˜๋ฉด ๋จ (์—ฌ๋Ÿฌ ๋ฒˆ ์ž…๋ ฅํ•ด๋„ ๋ฌธ์ œ๋˜์ง„ ์•Š์Œ)
  • โ˜… ์ค‘์š” โ˜… ์ •ํ™•ํ•œ ํ”„๋กœ์ ํŠธ ํด๋”(๊ฒฝ๋กœ)์—์„œ ์ž…๋ ฅํ•ด์•ผ ํ•จ (์ž˜๋ชปํ•˜๋ฉด ๋ฐ์Šคํฌํƒ‘ ์ „์ฒด ํŒŒ์ผ, ํด๋”๊ฐ€ ๋‹ค ๊ธฐ๋ก๋จ)

 

  • ํŒŒ์ผ์—์„œ ๊ฐ„๋‹จํ•œ ์ฝ”๋“œ (.kt) ํŒŒ์ผ ๋งŒ๋“ค๊ณ  ํ„ฐ๋ฏธ๋„ ํ˜น์€ gitBash ์—ด์–ด ์ฃผ๊ธฐ
  • ํด๋” - ์˜ค๋ฅธ์ชฝ ํด๋ฆญ - GitBash here ๋ˆ„๋ฅด๋ฉด ์ •ํ™•ํžˆ ๊ทธ ์œ„์น˜์—์„œ ์—ด๋ฆผ
  • ๊ทธ๋ž˜๋„ ๊ฒฝ๋กœํ™•์ธ์€ ํ•„์ˆ˜ (pwd)

 

 

  • git init์ด๋ผ๊ณ  ์ž…๋ ฅํ•˜๋ฉด '๊นƒ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ƒˆ๋กœ ์ƒ์„ฑํ–ˆ๋‹ค'๋Š” ์•Œ๋žŒ์ด ๋œฐ ๊ฒƒ. ์ €๋ ‡๊ฒŒ ๋‚˜์˜ค๋ฉด ์„ฑ๊ณต
  • ls -a ํ•˜๋ฉด .git ์ด๋ผ๋Š” ํด๋”๊ฐ€ ๋‚˜์˜ด
  • ์ด .git ํด๋”์—์„œ ์ฝ”๋“œ ๋ณ€๊ฒฝ์ ์„ ๊ณ„์† ์ถ”์  & ๊ธฐ๋กํ•จ. ๋”ฐ๋ผ์„œ ์ •ํ™•ํ•œ ํ”„๋กœ์ ํŠธ ๊ฒฝ๋กœ์— ์žˆ์–ด์•ผ ํ•จ
  • pwd๋กœ ํ˜„์žฌ ๊ฒฝ๋กœ ํ™•์ธ ํ›„ ๊ฒฝ๋กœ๊ฐ€ ๋‹ค๋ฅด๋ฉด cd ๋ช…๋ น์–ด๋กœ ์ด๋™ ํ›„ git init ๋ช…๋ น์–ด ์‹คํ–‰ํ•ด์•ผ ํ•จ

 

 

 

2. git add & git commit : ์ฝ”๋“œ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ช…๋ น์–ด

 

 

๐Ÿ’ก ์ˆœ์„œ

  1. git add ํŒŒ์ผ๋ช… (์ €์žฅํ•  ํŒŒ์ผ๋ช…)
  2. git commit -m "๋ฉ”์„ธ์ง€ ์ž‘์„ฑ"  (๋ฉ”์‹œ์ง€ ๋ถ€๋ถ„์€ ๋‚ด๊ฐ€ ๋ฌด์Šจ ์ฝ”๋“œ๋ฅผ ์งฐ๋Š”์ง€ ์ž์„ธํ•˜๊ฒŒ ์ ๋Š” ๊ฒƒ์ด ์ข‹์Œ)
  3. ์ €์žฅ ์™„๋ฃŒ

 

๐Ÿ’กgit commit ํ›„ ์ €์žฅ ์•ˆ ๋˜๋Š” ๊ฒฝ์šฐ

  •  ๊ณ„์ • ์„ค์ •์„ ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ž„ (Please tell me who you are)
  • ๊ณ„์ • ์„ค์ •
    git config --global user.email "abc1234@gmail.com"
    git config --global user.name "nickname"

 

๐Ÿ’ก ์ €์žฅ ๋ช…๋ น์–ด๊ฐ€ 2๊ฐœ์ธ ์ด์œ ?

  1. git add ํŒŒ์ผ๋ช… : ์ €์žฅํ•˜๊ธฐ ์ „ ์ €์žฅํ•  ํŒŒ์ผ ์ง€์ •
  2. git commit -m "๋ฉ”์‹œ์ง€ ์ž‘์„ฑ" : ์‹ค์ œ๋กœ ์ €์žฅํ•˜๋Š” ๋ช…๋ น์–ด

 

 

 

3. git status : ์ €์žฅ ์—ฌ๋ถ€ ํ™•์ธํ•˜๋Š” ๋ช…๋ น์–ด

 

 

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

 

๐Ÿ’ก  ๋‚ด ํ”„๋กœ์ ํŠธ์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ํ•œ ๋ฒˆ์— ์ง€์ •ํ•˜๋Š” ๋ฒ•

  1. git add . (์  . ์€ ํ˜„์žฌ ํด๋”(๋””๋ ‰ํ† ๋ฆฌ)์— ์žˆ๋Š” ๋ชจ๋“  ํŒŒ์ผ์„ ์˜๋ฏธ)
  2. git commit m "๋ฉ”์‹œ์ง€"
  3. git status ๋กœ ํ™•์ธ -> nothing to commit (๋” ์ด์ƒ ์ปค๋ฐ‹ํ•  ๊ฒŒ ์—†๋‹ค๋Š” ์•ˆ๋‚ด๋ฉ”์‹œ์ง€ ๋œธ)

 

๐Ÿ’ก Working directroy, Staging area, Repositoy?

  • ์ด ๋ถ€๋ถ„์˜ ๊ฐœ๋…์€ ์–ด๋ ต๊ฒŒ ์•Œ ํ•„์š” ์—†๋Š” ๋ถ€๋ถ„์ด๋ผ ํŽธํ•˜๊ฒŒ ๊ตฌ๊ธ€๋งํ•˜๋ฉฐ ๊ฒ€์ƒ‰ํ•ด๋ณด๊ธฐ

 

 

4. git log : ์ €์žฅ ๋‚ด์—ญ์„ ํ™•์ธํ•˜๋Š” ๋ช…๋ น์–ด

 

 

  • ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋กœ ์ฝ”๋“œ ๋ณ€๊ฒฝ์  ์ถ”์ธก ๊ฐ€๋Šฅ -> ์ด๋ž˜์„œ commitํ•  ๋•Œ ๋ฉ”์‹œ์ง€ ์ž˜ ์ž‘์„ฑํ•˜๋ผ๊ณ  ํ•˜๋Š” ๊ฒƒ
  • ๊ฐ๊ฐ์˜ ์ปค๋ฐ‹๋งˆ๋‹ค ID๊ฐ€ ์žˆ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Œ
  • git diff: ์ฝ”๋“œ ๋ณ€๊ฒฝ ํ™•์ธ
    git reset : ๊ณผ๊ฑฐ๋กœ ๋Œ์•„๊ฐ€๊ธฐ ๊ฐ€๋Šฅ
  • ์•„๋ž˜ (END)๊ฐ€ ๋œจ๋ฉด ํ‚ค๋ณด๋“œ ์ž…๋ ฅ์ด ์•ˆ ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋Š”๋ฐ, Q ํด๋ฆญํ•˜๋ฉด ๋น ์ ธ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์Œ

 

 


 

4. Github์œผ๋กœ ์ฝ”๋“œ ๋ฐฑ์—…ํ•˜๊ธฐ

 

 

1. ์˜จ๋ผ์ธ ์ €์žฅ์†Œ (github repositoy) ๋งŒ๋“ค๊ธฐ

1. github ํšŒ์› ๊ฐ€์ž… ๋ฐ ๋กœ๊ทธ์ธ
2. Repositories์—์„œ New ๋ฒ„ํŠผ ํด๋ฆญ
3. Repository ์ด๋ฆ„ ์ž…๋ ฅ ํ›„ creat respository ๋ฒ„ํŠผ ํด๋ฆญ
4. ์ƒ์„ฑํ•œ github repository ํ™”๋ฉด์ด ๋‚˜์˜ด

 

 

2. ๋‚ด ์ฝ”๋“œ๋ฅผ Github respository๋กœ ์—…๋กœ๋“œ ํ•˜๊ธฐ

 

 

1. ์•„๋ž˜ or push ๋ถ€๋ถ„ ๋ณต์‚ฌํ•ด์„œ ํ„ฐ๋ฏธ๋„์— ๊ทธ๋Œ€๋กœ ๋ถ™์—ฌ๋„ฃ๊ณ  ์—”ํ„ฐํ•˜๋ฉด ์ ์šฉ ๋œ ๊ฒƒ
2. ์ƒˆ๋กœ ๊ณ ์นจํ•˜๋ฉด ๋ ˆํฌ์ง€ํ† ๋ฆฌ์— ์•„๊นŒ ์ง  ํŒŒ์ผ์ด ์ €์žฅ๋œ ๊ฒƒ์„ Github์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ

 

 

3. git push : ์ถ”๊ฐ€๋กœ ์ˆ˜์ •๋œ ์ฝ”๋“œ github์— ๋ฐ˜์˜ํ•˜๊ธฐ

 

  • Git์—์„œ commit๊นŒ์ง€ ๋œ ๊ฒƒ์„ github์— ๋ฐ˜์˜ํ•˜๋Š” ๋ช…๋ น์–ด
  • 1. ์ฝ”๋“œ ์ˆ˜์ •
    2. ์ฝ”๋“œ ์ €์žฅ: ๋ช…๋ น์–ด ์‹คํ–‰ git add . & git commit -m "๋ฉ”์‹œ์ง€"
    3. ์ฝ”๋“œ ์—…๋กœ๋“œ: git push origin ๋ธŒ๋žœ์น˜๋ช… (ํ˜„์žฌ ์‹œ์ ์—์„œ๋Š” ๋ธŒ๋žœ์น˜๋ช… main์œผ๋กœ ์ž‘์„ฑํ•  ๊ฒƒ) 

 

๐Ÿ’ก ๋ ˆํฌ์ง€ํ† ๋ฆฌ QuickSetup ์† ๋ช…๋ น์–ด์˜ ์˜๋ฏธ?

1. git remote add origin <github ์ฃผ์†Œ>
- ์›๋ž˜๋Š” pushํ•  ๋•Œ git push github์ฃผ์†Œ ๋ธŒ๋žœ์น˜๋ช… ์œผ๋กœ ์ž‘์„ฑ ํ–ˆ์–ด์•ผ ํ•จ
- ํ•ด๋‹น ๋ช…๋ น์–ด๋กœ github์ฃผ์†Œ๋ฅผ origin์œผ๋กœ ์ง€์ •
- git push origin ๋ธŒ๋žœ์น˜๋ช…์œผ๋กœ ์ž‘๋™ํ•˜๋„๋ก ์„ค์ •ํ•˜๋Š” ๊ฒƒ

2. git branch -M main
- git init์„ ํ•˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ธŒ๋žœ์น˜ ์ด๋ฆ„์ด master๋กœ ๋˜์–ด ์žˆ๋Š”๋ฐ (๋…ธ์˜ˆ ์ œ๋„์™€ ๊ด€๋ จ)
- ์ด ๋ธŒ๋žœ์น˜๋ช…(master)๋ฅผ main์œผ๋กœ ๋ฐ”๊พธ๋Š” ๊ฒƒ (BlackLivesMatter)

3. git push -u origin main
- ์›๋ž˜๋ผ๋ฉด pushํ•  ๋•Œ git push origin main ์„ ์ž…๋ ฅํ•ด์ค˜์•ผ ํ•จ -> ๊ท€์ฐฎ์Œ
- ์ด ์ฝ”๋“œ๋กœ git push ๋งŒ ์ž…๋ ฅํ•ด๋„ git push origin main ์ด ์ž‘๋™ ๋จ
- -u๋Š” ์—ฐ๊ฒฐ ๊ฐœ๋…

 

 

 


 

5. Github ํ˜‘์—…ํ•˜๊ธฐ + ์ถฉ๋Œ ํ•ด๊ฒฐํ•˜๊ธฐ

 

 

 

1. ํ˜‘๋ ฅ์ž(collaborator) ๋“ฑ๋กํ•˜๊ธฐ (ํŒ€์žฅ ์ž…์žฅ)

 

  1. github ๋ ˆํฌ์ง€ํ† ๋ฆฌ -> settings -> collaborators -> Add people
  2. ์ถ”๊ฐ€ํ•  ํŒ€์› username์ด๋‚˜ email๋กœ ์ถ”๊ฐ€ -> ์ดˆ๋Œ€ ์ˆ˜๋ฝ

 

 

 

2. git clone : ์ฝ”๋“œ ์ „์ฒด ๋ณต์‚ฌํ•ด์˜ค๊ธฐ (ํŒ€์› ์ž…์žฅ)

 

  • A ํŒ€์žฅ์˜ ์ฝ”๋“œ -> Github -> B ํŒ€์›์—๊ฒŒ ํ†ต์งธ๋กœ ์˜ฎ๊น€ : Git clone
  • ์ด ๋ช…๋ น์€ ์ €์žฅ์†Œ๋ฅผ ์ฒ˜์Œ ์‹œ์ž‘ํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋ฉฐ, ๊ทธ ์ดํ›„์—๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์‹œ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ
  1. Github์—์„œ ๋ณต์‚ฌํ•  ๋ ˆํฌ์ง€ํ† ๋ฆฌ - code ํด๋ฆญ - https ์ฃผ์†Œ ๋ณต์‚ฌ
  2. IDE์—์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ํด๋”๋ฅผ ๋งŒ๋“ค์–ด์„œ ์—ด๊ณ 
  3. ํ„ฐ๋ฏธ๋„ ์ƒ์—์„œ git clone <github ์ฃผ์†Œ> .  ๋ช…๋ น์–ด ์ž…๋ ฅ
    ( . ์„ ์•ˆ์นœ๋‹ค๋ฉด ํด๋”๊ฐ€ ์ƒˆ๋กœ ๋งŒ๋“ค์–ด์ ธ์„œ, ๊ทธ ํด๋” ์•ˆ์œผ๋กœ ๋“ค์–ด๊ฐ€์•ผ ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์žˆ์Œ
    ๋”ฐ๋ผ์„œ ์ฝ”๋“œ ์ž‘์„ฑํ•  ํด๋”๋ฅผ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด ๋‘๊ณ  ๊ฑฐ๊ธฐ์— git clone github์ฃผ์†Œ . ํ•˜๋Š” ๊ฑฐ ์ถ”์ฒœ)
  4. ํ™•์ธํ•ด๋ณด๋ฉด ํ”„๋กœ์ ํŠธ ํŒŒ์ผ๋“ค์ด ๋“ค์–ด์™€์กŒ๊ณ , ๋‹ค๋ฅธ ํŒ€์›๋“ค๋„ ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Œ

 

 

 

3. git pull : ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๋ณ€๊ฒฝํ•œ ์ฝ”๋“œ ๋‚ด ์ฝ”๋“œ์—๋„ ๊ฐ€์ ธ์˜ค๊ธฐ

 

  • ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์—…๋กœ๋“œ ํ•˜๊ณ  ์ ์šฉํ•˜๊ณ  ์‹ถ์„ ๋• pull ์„ ํ•ด์•ผ ํ•จ.
  • clone์€ ์ „์ฒด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์œผ๋กœ ๋ณดํ†ต ์ดˆ๊ธฐ ํ•œ ๋ฒˆ ์‹คํ–‰ํ•˜๊ณ  ์•ˆ ํ•จ

 

  1. A ํŒ€์žฅ์ด a์ฝ”๋“œ๋ฅผ ๋งŒ๋“ฆ -> Github์— push -> B๊ฐ€ clone์œผ๋กœ a๊ฐ€์ ธ์˜ด
  2. a๋ฅผ ๊ฐ€์ ธ์˜จ B๊ฐ€ b ํŒŒ์ผ์„ ์ƒˆ๋กœ ๋งŒ๋“ค์–ด์„œ a+b ์ „์ฒด git push๋ฅผ ํ•จ
  3. Github์—” aํŒŒ์ผ๊ณผ bํŒŒ์ผ์ด ์ƒ๊น€
  4. ๊ทผ๋ฐ AํŒ€์žฅ์ด ๊ทธ๋™์•ˆ a๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ์žˆ์—ˆ๊ณ , pushํ•ด๋ฒ„๋ฆฌ๋ฉด ๋ฎ์–ด์“ฐ๊ธฐ๊ฐ€ ๋˜์–ด b๊ฐ€ ์‚ฌ๋ผ์ง€๊ณ  ๋ฐ”๋€ a๋งŒ ๋‚จ์Œ
  5. ์ด๋ ‡๊ฒŒ ๋˜๋ฉด ์•ˆ๋˜๊ฒ ์ง€? (์–ด์ฐจํ”ผ ์—๋Ÿฌ๋‚˜์„œ Git์—์„œ ๋ง‰์•„์ค˜์„œ ์—๋Ÿฌ๋‚˜๊ธด ํ•จ)
    ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์ด๋ฏธ git pushํ•˜๊ณ  ๋‚ด๊ฐ€ git pushํ•˜๋ ค๊ณ  ํ•˜๋ฉด ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ
    git push ์ „์— git pull ๋จผ์ €ํ•˜์„ธ์š” ๋ผ๋Š” ํžŒํŠธ๊ฐ€ ๋œจ๊ธด ํ•จ

 

๊ฒฝ๊ณ ๋ฌธ ๋œฐ ๋• ์œ„์—๊บผ ๋ณต์‚ฌํ•ด์„œ ๊ทธ๋Œ€๋กœ ์ž…๋ ฅ ํ›„ ๋‹ค์‹œ ์‹œ๋„

 

  1. ์ฝ”๋“œ ์ˆ˜์ • ํ›„ git push origin ๋ธŒ๋žœ์น˜๋ช…
  2. git pull์„ ๋จผ์ € ํ•˜๋ผ๋Š” ์—๋Ÿฌ ๋ฐœ์ƒ ์‹œ git pull origin ๋ธŒ๋žœ์น˜๋ช… ์ž…๋ ฅ (๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์—…๋กœ๋“œ ํ–ˆ๊ตฌ๋‚˜ ์ƒ๊ฐ)
  3. git pull ์‹œ ์ฒ˜์Œ ํ•  ๋•Œ ๊ฒฝ๊ณ ๋ฌธ ๋œฐ ์ˆ˜ ์žˆ์Œ - ํ•ฉ์น  ๋•Œ(merge) ์–ด๋–ป๊ฒŒ ํ• ๊ฑฐ์•ผ? ํ•˜๋Š” ์„ค์ •
  4. ์ฒ˜์Œํ•  ๋•Œ ๊ฒฝ๊ณ ๋ฌธ์ด ๋œฌ๋‹ค๋ฉด ์ฒซ๋ฒˆ ์งธ ์ค„ git config pull.rebase false ๋ณต์‚ฌํ•ด์„œ ๊ทธ๋Œ€๋กœ ๋‹ค์‹œ ์ž…๋ ฅ
    (rebase๋Š” true ๋ชจ๋ฅด๊ณ  ์“ฐ๋ฉด ๋‹ค ๋‚ ๋ฆผ ์ฃผ์˜. ๋‚˜์ค‘์— ํ˜„์—…์—์„œ๋„ ์•ˆ ์“ฐ๋Š” ๊ฒฝ์šฐ ๋งŽ์Œ)
  5. ๋‹ค์‹œ git pull origin ๋ธŒ๋žœ์น˜๋ช… ์ž…๋ ฅํ•˜๋ฉด ์ž˜ ๋  ๊ฒƒ

 

๐Ÿ’ก ํ„ฐ๋ฏธ๋„์— ์•„๋ฌด๊ฒƒ๋„ ์ž…๋ ฅ์ด ์•ˆ๋˜๋Š” vim ์—๋””ํ„ฐ๊ฐ€ ๋œฌ๋‹ค๋ฉด?

  1. ํ‚ค๋ณด๋“œ esc
  2. ํ‚ค๋ณด๋“œ :
  3. ํ‚ค๋ณด๋“œ w, q
  4. ํ‚ค๋ณด๋“œ enter  ๋ˆŒ๋Ÿฌ๋ณด๋ฉด ์ €์žฅ ๋จ

 

 

 

 

4. ์ถฉ๋Œ(conflict) ํ•ด๊ฒฐํ•˜๊ธฐ : git pull ๋ช…๋ น์–ด๋กœ ๊ฐ€์ ธ์™”๋Š”๋ฐ ์ฝ”๋“œ๊ฐ€ ์ด์ƒํ•œ ๊ฒฝ์šฐ

 

 

 

  • index.html์—์„œ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ–ˆ์œผ๋‹ˆ ํ•ด๊ฒฐํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€

 

  • ์ถฉ๋Œ ์ด์œ  : ๊ฐ™์€ ํŒŒ์ผ์˜ ๊ฐ™์€ ์œ„์น˜์— ์ฝ”๋“œ๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ
    ex) A๊ฐœ๋ฐœ์ž๊ฐ€ aํŒŒ์ผ์˜ 2๋ฒˆ์งธ ์ค„ ์ฝ”๋“œ ๋ณ€๊ฒฝ, B๊ฐœ๋ฐœ์ž๊ฐ€ aํŒŒ์ผ์˜ 2๋ฒˆ์งธ ์ค„ ์ฝ”๋“œ ๋ณ€๊ฒฝํ–ˆ์„ ๋•Œ
  • Current Change๋Š” ๋‚ด๊ฐ€ ์ˆ˜์ •ํ•œ ๊ฒƒ, Incoming Change๋Š” ์ƒ๋Œ€๊ฐ€ ์˜ฌ๋ฆฐ ๊ฒƒ

 

๐Ÿ’ก ํ•ด๊ฒฐ๋ฐฉ๋ฒ• (์ด๊ฑด ๊ทœ์น™์ด ์žˆ๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ, ์šฐ๋ฆฌ๊ฐ€ ์ง์ ‘ ํ•ด์•ผํ•˜๋Š” ๊ฒƒ. Github์—์„  ํ•ด์ค„ ์ˆ˜ ์—†์Œ)

  • 1. <<<< HEAD ์‚ญ์ œ
  • 2. ======= ์‚ญ์ œ
  • 3. >>>>>>>> 4182... ์‚ญ์ œ
    (<<<<====>>> ์‚ญ์ œ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋จ)
  • 4. ์›ํ•˜๋Š” ์ฝ”๋“œ๋กœ ์ˆ˜์ • (ํŒ€์›๊ณผ ์–˜๊ธฐํ•˜๋ฉด์„œ ์ˆ˜์ •)

 

๐Ÿ’ก pull๋กœ ์ธํ•œ ์ถฉ๋Œ(Conflict)์„ ํ•ด๊ฒฐํ–ˆ๋‹ค๋ฉด

  • git add. & git commit -m "๋ฉ”์‹œ์ง€" ์ €์žฅ
  • git push origin ๋ธŒ๋žœ์น˜๋ช…(main)

 

๐Ÿ’ก git push์™€ pull์˜ ์ฃผ๊ธฐ

  • ์ •ํ•ด์ง„ ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ, git push๋ž‘ pull์„ ์ž์ฃผํ•ด์•ผ ๊ฒน์น˜๋Š” ์ถฉ๋Œ ํ•ด๊ฒฐ ์–‘์„ ์ค„์–ด ์คŒ
  • ๋Šฆ๊ฒŒ ํ•˜๋ฉด ์ถฉ๋Œ ๋•Œ๋งˆ๋‹ค ์ˆ˜์ •ํ•  ์–‘์ด ์ ์  ๋งŽ์•„์ ธ์„œ ํž˜๋“ฆ
  • ์ง„์งœ ์ตœ์†Œํ•œ์˜ ๊ธฐ๋Šฅ ๋‹จ์œ„๋งˆ๋‹ค๋Š” ํ•ด์ฃผ๋Š” ๊ฒƒ์„ ์ถ”์ฒœ

 

๐Ÿ’ก ์˜ฌ๋ผ๊ฐ€์„  ์•ˆ๋  ํŒŒ์ผ์ด ์ปค๋ฐ‹๋œ ๊ฒฝ์šฐ ์ดํ›„ ํŒŒ์ผ์„ ์ง€์šฐ๊ณ  ์ปค๋ฐ‹์„ ํ•˜์—ฌ๋„ ๋กœ๊ทธ์— ๋‚จ์•„์žˆ์–ด ์™„์ „ํžˆ ์ง€์›Œ์ง€์ง€ ์•Š๋Š” ๊ฒฝ์šฐ

  • git reset ํ›„ ๋‹ค์‹œ git push (๊ตฌ๊ธ€๋ง ํ•ด๋ณด๊ธฐ)

 

 

 

๋ฐ˜์‘ํ˜•
 ๐Ÿ’ฌ C O M M E N T