Git-2

Git, GitHub ์ด๋ก , ๋ช…๋ น์–ด 2

Git repo ์ด์šฉ๋ฒ• / ๊ธฐ๋ณธ ๋ช…๋ น์–ด (by Git Bash)

์›๊ฒฉ ์ €์žฅ์†Œ์™€ PR(Pull Request)
  • ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ๋ ˆํฌ์— ์žˆ๋Š” ์ž‘์—…๋ฌผ์„ ๊ฐ€์ ธ์˜ฌ ๊ฒฝ์šฐ, Fork๋ฅผ ์ด์šฉํ•œ๋‹ค.
    ( ์˜ˆ์‹œ : koreaeva ๊ธฐ์ค€ )
  • Fork๋Š” ์„œ๋ฒ„์—์„œ ์‚ฌ๋ณธ์„ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•์ด๊ณ , ๊ทธ ์‚ฌ๋ณธ์„ ๋กœ์ปฌ ๋ ˆํฌ์— ๊ฐ€์ ธ์™€ ์ž‘์—…์„ ์ง„ํ–‰ํ•œ๋‹ค.
  • ์ƒˆ ํด๋”๋ฅผ ๋งŒ๋“ค์–ด Clone์„ ์ง„ํ–‰ํ•˜๊ณ  ์ž‘์—…์„ ๋งˆ์นœ ํ›„ ๋กœ์ปฌ์— ์ปค๋ฐ‹ํ•œ ๋‹ค์Œ ์„œ๋ฒ„๋กœ โ€˜Push๋ฅผ ํ•œ๋‹ค.
  • ๋ฐ”๋€ ๋‚ด์šฉ์„ ์›๋ž˜ ์ฃผ์ธ์—๊ฒŒ Pull Request๋ฅผ ์‹ ์ฒญํ•ด์„œ ๋ง˜์— ๋“ค๋ฉด Merge

s4

  • ์ด์šฉ๋ฒ• (์˜ˆ์‹œ)
    (๋‚˜์˜ ์ž…์žฅ)

    • youwookstudio ์— โ€œForkโ€๋ฅผ ๋ˆŒ๋Ÿฌ์„œ ๋‚˜์˜ Github์— ์‚ฌ๋ณธ์„ ๋งŒ๋“ ๋‹ค. ์‚ฌ๋ณธ์„ ๋กœ์ปฌ์— โ€œCloneโ€ ํ•œ๋‹ค.
    git status                  // ๋ณ€๊ฒฝ ์ƒํƒœ ์ฒดํฌ, ํŒŒ์ผ์ด ๋ณ€๊ฒฝ๋๋Š”์ง€? commit์ด  ๋๋Š”์ง€?
    git add ํŒŒ์ผ๋ช…              // ํŒŒ์ผ ์ถ”๊ฐ€ ( . ์€ ๋ชจ๋“  ํŒŒ์ผ ์ถ”๊ฐ€ )
    git commit -m message       // ์ปค๋ฐ‹ + ๋ฉ”์„ธ์ง€, Local Repo ์˜ฌ๋ ค์ฃผ๋Š” ์—ญํ• ์„  ํ•œ๋‹ค. ๋ฉ”์„ธ์ง€์™€ ํ•จ๊ป˜
    git push origin main        // ๋งˆ์ง€๋ง‰์œผ๋กœ โ€˜mainโ€™ ์„œ๋ฒ„์— ๋„ฃ์–ด์ค€๋‹ค.
    
    
    • ๋‚ด GitHub ์„œ๋ฒ„์— ๋“ค์–ด๊ฐ€์„œ New Pull Request ๋ฅผ ๋ˆŒ๋Ÿฌ์„œ ๋ฉ”์„ธ์ง€๋ฅผ ์ „ํ•ด์ค€๋‹ค.
      โ€“> Pull Request ๊ณผ์ •

    (์ƒ๋Œ€์ž…์žฅ)
    Confirm (Merge) or Reject

์„œ๋ฒ„์—์„œ Branch ์ƒ์„ฑ

*์•„๋ž˜์˜ ์‚ฌ์šฉ๋ฒ•์„ ํ•˜๊ธฐ ์ „์—! ์•„๋ฌด ํ”„๋กœ์ ํŠธ์— ํ•˜์ง€๋ง๊ณ  Test repo๋ฅผ ๋งŒ๋“ค์–ด์„œ ์ฒœ์ฒœํžˆ ํ•ด๋ณด์ž.*



  1. git์— branch๊ฐ€ ์žˆ๋‹ค๋ฉด? ์„œ๋ฒ„์—๋„ ๊ฐ™์€ ์ด๋ฆ„์˜ branch๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

    git push --set-upstream origin [branch] // ์›๊ฒฉ(์„œ๋ฒ„)์— ๋ธŒ๋žœ์น˜ ์ด๋ฆ„์„    ๋งŒ๋“ค์–ด ์ค€๋‹ค.
    
    // ๋˜๋Š”
    
    git checkout [branch]                   // git์˜ branch๋กœ ์ด๋™
    git push origin -u <new_name_branch>    // github์— branch ์ƒ์„ฑ
    
  2. branch๊ฐ€ ์žˆ๋Š” ์„œ๋ฒ„๋ฅผ ํด๋ก ํ•œ๋‹ค๋ฉด?
    โ€“> main๋งŒ ํด๋ก ๋œ๋‹ค. ๋ธŒ๋žœ์น˜๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ๋‹ค๋ฉด?

    it remote update				        // ํ˜„์žฌ ์›๊ฒฉ์ €์žฅ์†Œ ์—…๋ฐ์ดํŠธ
    it branch -a					        // ํ˜„์žฌ ์›๊ฒฉ๊ณผ ๋กœ์ปฌ ๋ธŒ๋žœ์น˜ ๋ชฉ๋ก ๋ณด์—ฌ์ฃผ๊ธฐ
    it checkout -t origin/~~			    // ์›๊ฒฉ์— ์žˆ๋Š” ๋ธŒ๋žœ์น˜ ๊ฐ€์ ธ์˜ค๊ธฐ (ํ˜„์žฌ ๋กœ์ปฌ์— ๊ฐ™์€ ์ด๋ฆ„์˜ ๋ธŒ๋žœ์น˜๊ฐ€ ์—†์–ด์•ผํ•œ๋‹ค.)
    
  3. local์—” branch๊ฐ€ ์—†๋Š”๋ฐ ์›๊ฒฉ์—์„œ ์ž„์˜๋กœ ์ƒ์„ฑํ–ˆ๋‹ค๋ฉด? pull ํ•ด์ฃผ์ž.

  4. local์—” branch๊ฐ€ ์žˆ๋Š”๋ฐ ์›๊ฒฉ์—์„œ ์ž„์˜๋กœ ์‚ญ์ œํ–ˆ๋‹ค๋ฉด?
    ๋‹ค์‹œ ์›๊ฒฉ์—์„œ ๋˜‘๊ฐ™์€ ์ด๋ฆ„ ๋งŒ๋“ค์–ด์ฃผ๊ณ  git์—์„œ ์‚ญ์ œํ•˜์ž.

    git fetch --all --prune
    git remote prune origin				// ์ด ๋‘˜ ์ค‘ ํ•˜๋‚˜๋กœ ๋™๊ธฐํ™”
    
    git branch -d [name]				// local์—์„œ ์‚ญ์ œ
    git push origin --delete [name]
    git push origin :[name]				// Remote branch ์‚ญ์ œ (๋‘˜ ์ค‘ ํ•˜๋‚˜)
    
  5. branch ์ด๋ฆ„ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹ถ์„ ๋•Œ?

    git branch -m a b				            // a์—์„œ b๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ (๋กœ์ปฌ)
    git push origin -u <new_name_branch>		// ์ƒˆ๋กœ๋งŒ๋“  branch ์ƒ์„ฑ
    git push origin --delete <old_name_branch>	// ์›๋ž˜ ์žˆ๋˜ branch ์‚ญ์ œ
    git fetch						            // ๋ณ€๊ฒฝ ๋‚ด์šฉ ๊ฐ€์ ธ์˜ค๊ธฐ
    git branch --unset-upstream			        // ์„œ๋ฒ„์— ์žˆ๋Š” origin (์›๋ž˜ default)๊ณผ ์—ฐ๊ฒฐ ์ œ๊ฑฐ
    git branch -u origin/main				    // ์„œ๋ฒ„์— ์žˆ๋Š” main๊ณผ ์—ฐ๊ฒฐ
    

์„œ๋ฒ„์— ์ถฉ๋Œ?, ๋ฒ„์ „ ๊ด€๋ฆฌ? ๋Š” ์ถ”ํ›„์— ๋‹ค์‹œ ๊ณต๋ถ€ํ•ด์„œ ๋‹ค์‹œ ํฌ์ŠคํŒ….

ํƒœ๊ทธ: , ,

์นดํ…Œ๊ณ ๋ฆฌ:

์—…๋ฐ์ดํŠธ: