[TIL] Day18 #Git

Beanxxยท2022๋…„ 5์›” 19์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
18/120
post-thumbnail

[TIL] Day18
[SEB FE] Day18

โ˜‘๏ธย Local Repository

  • Git Repository: ํŒŒ์ผ์ด๋‚˜ ํด๋”๋ฅผ ์ €์žฅํ•ด๋‘๋Š” ์ €์žฅ์†Œ
    • Local Repository: ๋‚ด ์ปดํ“จํ„ฐ์˜ ์ €์žฅ์†Œ / ๋‚ด ๊ฐœ์ธ ์ „์šฉ ์ €์žฅ์†Œ
    • Remote(์›๊ฒฉ) Git Repository: ๋กœ์ปฌ ํ™˜๊ฒฝ ์ž‘์—… ๊ณต๊ฐ„์— ์œ„์น˜ํ•˜์ง€ ์•Š๋Š” ์›๊ฒฉ ์˜จ๋ผ์ธ ์„œ๋ฒ„ ์ƒ์˜ ์ €์žฅ์†Œ
      • ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ ํ•จ๊ป˜ ๊ณต์œ  ๊ฐ€๋Šฅ

๐Ÿ“Žย Local Git Repository ์ƒ์„ฑ

  1. git init: ์ฝ”๋“œ๋ฅผ ์ €์žฅํ•  ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“ค๊ณ  ํ•ด๋‹น ๋””๋ ‰ํ† ๋ฆฌ(์ž‘์—… ๊ณต๊ฐ„)์— Local Git Repository๋ฅผ ์ƒ์„ฑ
  2. git add <๊ฒฝ๋กœ๋ช…> : Untracked files ์ค‘ ์›ํ•˜๋Š” ํŒŒ์ผ์„ staging area๋กœ ์˜ฎ๊ฒจ Git์˜ ๊ด€๋ฆฌํ•˜์— ๋‘ 
    1. git add .: ํ˜„์žฌ ๊ฒฝ๋กœ pwd์˜ ๋ชจ๋“  ํŒŒ์ผ์„ ํ•œ๋ฒˆ์— staging area๋กœ ์ถ”๊ฐ€ (.์€ ํ˜„์žฌ ๊ฒฝ๋กœ ์˜๋ฏธ)
  3. git commit: staging area ํŒŒ์ผ์€ commit ๊ฐ€๋Šฅ / commit์œผ๋กœ Local Git Repository์— ๋‚ด ์ฝ”๋“œ ๊ธฐ๋ก ๊ฐ€๋Šฅ
    1. git commit: staging area์˜ ์ฝ”๋“œ ๋ฌถ์Œ์„ ์ €์žฅ / ์ˆ˜์ • ์ž‘์—…์ด ๋๋‚ฌ์„ ๋•Œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ €์žฅ
    2. -m โ€œcommit messageโ€: staging area ์ฝ”๋“œ์˜ ์šฉ๋„๋ฅผ ์ ์–ด๋‘๋Š” ํ–‰์œ„
    3. staging area์— ์žˆ๋Š” ๋ชจ๋“  ๋ณ€๋™์‚ฌํ•ญ์„ ๊ธฐ๋กํ•˜๋ฉฐ, ๊ธฐ๋ก ํ›„์—” staging area๋Š” ๋น„์›Œ์ง
# 1. ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ
mkdir my-app

# 2. ๋””๋ ‰ํ† ๋ฆฌ ์ด๋™ (change directory)
cd my-app

# 3. ํŒŒ์ผ ์ƒ์„ฑ
touch index.html style.css

# 4. ํŒŒ์ผ ํ™•์ธ
ls

# 5. git repository ์ƒ์„ฑ
git init

๐Ÿ“Žย Staging area

: commit ํ•˜๊ธฐ ์ „์— ๋‚ด์šฉ์„ ๊ธฐ๋กํ•˜๋Š” ์žฅ์†Œ

๐Ÿ“Žย git status

: work space์— ์žˆ๋Š” untracked ํŒŒ์ผ, staging area์— ์žˆ๋Š” tracked ํŒŒ์ผ ๋ชฉ๋ก ํ™•์ธ ๊ฐ€๋Šฅ

  1. git rm โ€”cached <file>: staging area์—์„œ ์ œ๊ฑฐ (unstage)
  2. git add <file>: staging area๋กœ ์ถ”๊ฐ€
  3. git restore <file>: ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ํ๊ธฐ(discard change)

๐Ÿ“Žย ์ข‹์€ commit ์›์น™

  1. commit์€ ์ž‘์€ ๋‹จ์œ„๋กœ ์งง๊ณ  ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์‚ฌ์‹ค์ ์œผ๋กœ ์ž์ฃผ ์ž‘์„ฑ!

    ๐Ÿ‘‡ย ์ปค๋ฐ‹ ๊ธฐ๋ก์ด ์ƒ์„ธํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ์žฅ์ ์ด ์žˆ์Œ

    1. ์ฝ”๋“œ๋ฅผ ์ž˜๋ชป ์ ์€ ๊ฒฝ์šฐ์—, ์ด์ „ ๊ธฐ๋ก์„ ๋” ์‰ฝ๊ฒŒ ๋ณต์› ๊ฐ€๋Šฅ
    2. ๋ˆ„๊ฐ€ ํ•ด๋‹น ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ–ˆ๋Š”์ง€ ์‰ฝ๊ฒŒ ํŒŒ์•… ๊ฐ€๋Šฅ
    # Good๐Ÿ‘ - ๊ธฐ๋Šฅ(feat) ๊ตฌํ˜„์„ ํ™•์ธ ๊ฐ€๋Šฅ, ์ •ํ™•ํ•œ ๊ธฐ์ˆ  ์šฉ์–ด ์‚ฌ์šฉ, ์งง๊ณ  ๊ฐ„๊ฒฐํ•จ
    git commit -m "feat: ์ธ์Šคํƒ€ ๊ฒŒ์‹œ๊ธ€ ์กฐํšŒ ํŽ˜์ด์ง€๋„ค์ด์…˜"
    
    # Bad๐Ÿ‘Ž - ์ปค๋ฐ‹ ํƒ€์ž… ๊ตฌ๋ถ„ X, ์‚ฌ์‹ค ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•˜๊ธฐ ์–ด๋ ค์šด ํšจ์œจ์„ฑ์— ๋Œ€ํ•œ ์ฝ”๋ฉ˜ํŠธ
    git commit -m "๋” ํšจ์œจ์ ์ธ ์ธ์Šคํƒ€ ๊ฒŒ์‹œ๊ธ€ ์กฐํšŒ ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•จ"

โ˜‘๏ธย Remote(์›๊ฒฉ) Repository

  1. Github์—์„œ ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑ
  2. git remote add : ๋กœ์ปฌ ์ €์žฅ์†Œ์— ์›๊ฒฉ ์ €์žฅ์†Œ์˜ git url์„ ๋“ฑ๋ก
  3. git push: ๋กœ์ปฌ Git ์ €์žฅ์†Œ์— ๊ธฐ๋กํ•œ ๋‚ด์—ญ์„ ์›๊ฒฉ Git ์ €์žฅ์†Œ์— push

โœ‹ย ์›๊ฒฉ Git ์ €์žฅ์†Œ๋Š” Github์—์„œ๋งŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค? โŒ

๐Ÿ‘‰๐Ÿปย ์›๊ฒฉ Git ์ €์žฅ์†Œ๋Š” git์„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋ฒ„ ์–ด๋””๋“  ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Œ

๐Ÿ“Žย git remote

: ์›๊ฒฉ Repository๋ฅผ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ git ๋ช…๋ น์–ด

  • git remote add : ๋กœ์ปฌ ์ €์žฅ์†Œ์— ์›๊ฒฉ ์ €์žฅ์†Œ์˜ ์ฃผ์†Œ๋ฅผ ๋“ฑ๋กํ•˜๋Š” ๋ช…๋ น์–ด.
    • <name>: ๋กœ์ปฌ ์ €์žฅ์†Œ์—์„œ ์›๊ฒฉ ์ €์žฅ์†Œ์˜ ์ฃผ์†Œ๋ฅผ ๋Œ€์‹ ํ•  ์ด๋ฆ„ (ex: origin)

    • <URL>: ์›๊ฒฉ ์ €์žฅ์†Œ์˜ ์ฃผ์†Œ

      โ‡’ git remote add <name> <URL>์ˆœ์„œ๋กœ ์ž…๋ ฅ

โœ‹ย git remote rm origin: ์›๊ฒฉ ์ €์žฅ์†Œ remote ์—ฐ๊ฒฐ ์‚ญ์ œ

โœ‹ย git branch -m <old branch name> <new branch name>: ๋กœ์ปฌ ์ €์žฅ์†Œ ๋ธŒ๋žœ์น˜ ์ด๋ฆ„ ๋ณ€๊ฒฝ

โœ‹ย git remote -v: ์›๊ฒฉ ์ €์žฅ์†Œ๊ฐ€ ์ž˜ ์—ฐ๊ฒฐ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ

๐Ÿ“Žย git push

: ๋กœ์ปฌ ์ €์žฅ์†Œ์— ๊ธฐ๋กํ•œ ๋‚ด์—ญ์„ ์›๊ฒฉ ์ €์žฅ์†Œ๋กœ ์˜ฎ๊ธฐ๋Š” ์ž‘์—…

  • git push <remote> <branch>
    • <remote> : ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ์ด๋ฆ„
    • <branch> : ๋ธŒ๋žœ์น˜ ์ด๋ฆ„
  • ์ƒˆ๋กญ๊ฒŒ ์ƒ์„ฑํ•œ ์›๊ฒฉ ์ €์žฅ์†Œ์— ๊ธฐ์กด commit ๊ธฐ๋ก์„ ์˜ฎ๊ธฐ๊ฑฐ๋‚˜,
  • ๊ธฐ์กด ์›๊ฒฉ ์ €์žฅ์†Œ์—์„œ ์ผ๋ถ€ ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ์„ ์˜ฎ๊ธฐ๋Š”๋ฐ ์‚ฌ์šฉ

๐Ÿ“Žย git pull

: ์›๊ฒฉ ์ €์žฅ์†Œ์˜ ๊ธฐ๋ก์„ ๋กœ์ปฌ ์ €์žฅ์†Œ๋กœ ์˜ฎ๊ธฐ๋Š” ์ž‘์—… / git repository์—์„œ๋งŒ ๊ฐ€๋Šฅ

  • git pull <remote> <branch>

  • ์ƒˆ๋กญ๊ฒŒ ์ƒ์„ฑํ•œ ๋กœ์ปฌ ์ €์žฅ์†Œ์— ๊ธฐ์กด commit ๊ธฐ๋ก์„ ์˜ฎ๊ธฐ๊ฑฐ๋‚˜,

  • ์›๊ฒฉ ์ €์žฅ์†Œ์™€ ๋กœ์ปฌ ์ €์žฅ์†Œ์—์„œ ์ผ๋ถ€ ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ์„ ์˜ฎ๊ธฐ๋Š”๋ฐ ์‚ฌ์šฉ


โ˜‘๏ธย Fork

: ๊ธฐ์กด์˜ ์ž˜ ๋งŒ๋“ค์–ด์ง„ ํ”„๋กœ์ ํŠธ์— ๋ณ€ํ™”๋ฅผ ์ฃผ๊ฑฐ๋‚˜ ์ƒˆ๋กœ์šด ๊ฒƒ์„ ์‹œ๋„ ํ•ด๋ณด๊ธฐ ์œ„ํ•ด ์ €์žฅ์†Œ๋ฅผ ๋ณต์‚ฌํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธ

  • ๊ธฐ์กด์˜ ํ”„๋กœ์ ํŠธ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋กœ์˜ ํ”„๋กœ์ ํŠธ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Œ.

  • ๋ผ์ด์„ผ์Šค๊นŒ์ง€ ํ•จ๊ป˜ ๋ณต์‚ฌ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ณต๊ฐœ๋˜์–ด ์žˆ์œผ๋ฉฐ ๋ผ์ด์„ผ์Šค ๋ช…์‹œ๊ฐ€ ์ œ๋Œ€๋กœ ๋˜์–ด ์žˆ๋Š” ํ”„๋กœ์ ํŠธ๋Š” ํฌํฌํ•ด๋„ ๋ฌธ์ œ์—†์Œ.

    • MIT ๋ผ์ด์„ผ์Šค๋ฅผ ๊ฐ€์ง„ public ํ”„๋กœ์ ํŠธ ์ €์žฅ์†Œ๋Š” ํฌํฌํ•ด๋„ OK
  • public ํ”„๋กœ์ ํŠธ์— ๋ฒ„๊ทธ ์ˆ˜์ • ๋ฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ์š”์ฒญ (git push โ†’ pull request)

  • public ํ”„๋กœ์ ํŠธ์—์„œ ์ƒˆ๋กœ ์—…๋ฐ์ดํŠธ ๋œ ๋‚ด์šฉ์„ pull


โ˜‘๏ธย ์ปดํฌ๋„ŒํŠธ

: ํ•˜๋‚˜์˜ ์—ญํ• ์„ ํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ์ธ ๋ฌด์–ธ๊ฐ€์˜ ์ง‘ํ•ฉ


โ˜‘๏ธย ETC

๐Ÿ“Žย css reset

: ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ดˆ๊ธฐ css๊ฐ€ ๋‚จ์•„์žˆ์„ ์ˆ˜ ์žˆ์Œ โ†’ ์ด๋ฅผ ์ œ๊ฑฐํ•ด์„œ ์ข€ ๋” ์ง๊ด€์ ์ธ css ํ™˜๊ฒฝ ๊ตฌ์ถ•

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

โœ…ย summary

  1. ๋กœ์ปฌ ์ €์žฅ์†Œ์—์„œ git init
  2. git add .
  3. git commit
  4. github์—์„œ ์›๊ฒฉ ์ €์žฅ์†Œ ์ƒ์„ฑ
  5. ๋กœ์ปฌ ์ €์žฅ์†Œ์—์„œ git remote add origin <url>
  6. git push -u origin main

ย โœ‹ย ๋กœ์ปฌ ์ €์žฅ์†Œ์™€ ์›๊ฒฉ ์ €์žฅ์†Œ์˜ ๋ธŒ๋žœ์น˜ ์ด๋ฆ„์ด ๊ฐ™์€์ง€ ํ™•์ธ

ย โœ‹ย git clone์‹œ์—๋Š” git init์„ ํ•˜์ง€ ์•Š์•„๋„ ๋จ

profile
FE developer

0๊ฐœ์˜ ๋Œ“๊ธ€