Skip to main content
From 16:00 UTC on January 17, 2026, to 20:00 UTC on January 17, 2026, we will perform planned maintenance on the Trailhead, myTrailhead, and Trailblazer Community sites. During the maintenance, these sites will be unavailable, and users won't be able to access them. Please plan your activities around this required maintenance.

GitHub ์›Œํฌํ”Œ๋กœ ์ž‘์—…ํ•˜๊ธฐ

ํ•™์Šต ๋ชฉํ‘œ

์ด ์œ ๋‹›์„ ์™„๋ฃŒํ•˜๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • GitHub ์›Œํฌํ”Œ๋กœ์— ๋‹จ๊ณ„๋ฅผ ๋‚˜์—ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์›๊ฒฉ ๊ทผ๋ฌด ํ™˜๊ฒฝ๊ณผ ํ˜„์ง€ ๊ทผ๋ฌด ํ™˜๊ฒฝ์˜ ์ฐจ์ด์ ์„ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋‹จ๊ณ„๋ฅผ ์™„๋ฃŒํ•˜์—ฌ ์ƒˆ ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ  ๊ธฐ์กด ํŒŒ์ผ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฝ”๋“œ, ๊ณต๋™ ์ž‘์—…, ์ „์†ก์„ ์ˆœ์„œ๋Œ€๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ํ”Œ๋กœ ์ฐจํŠธ.

GitHub ์›Œํฌํ”Œ๋กœ ๊ฐœ์š”

GitHub ํ”Œ๋กœ๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์†์ƒ์‹œํ‚ฌ ์—ผ๋ ค ์—†์ด ์ƒˆ๋กœ์šด ์•„์ด๋””์–ด๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ„๋‹จํ•œ ์›Œํฌํ”Œ๋กœ์ž…๋‹ˆ๋‹ค. ์ฃผ์š” ๋‹จ๊ณ„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ๋ฉ”์ธ์—์„œ ๋ฒ—์–ด๋‚œ ๋ธŒ๋žœ์น˜ ๋งŒ๋“ค๊ธฐ
  2. ์ปค๋ฐ‹ ๋งŒ๋“ค๊ธฐ
  3. ํ’€ ์š”์ฒญ ์—ด๊ธฐ
  4. ํ˜‘์—…ํ•˜๊ธฐ
    • ๋” ๋งŽ์€ ์ปค๋ฐ‹ ๋งŒ๋“ค๊ธฐ
    • ํŒ€ ๊ตฌ์„ฑ์›๊ณผ ์ฝ”๋“œ์— ๋Œ€ํ•ด ๋…ผ์˜ํ•˜๊ณ  ๊ฒ€ํ† ํ•˜๊ธฐ
  5. ์ตœ์ข… ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ๋ฐฐํฌํ•˜๊ธฐ
  6. ๋ฉ”์ธ ๋ธŒ๋žœ์น˜๋กœ ๋ธŒ๋žœ์น˜ ๋ณ‘ํ•ฉํ•˜๊ธฐ

๋ถ„๊ธฐ ๋งŒ๋“ค๊ธฐ

๋ธŒ๋žœ์นญ์€ Git์˜ ํ•ต์‹ฌ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. Git์˜ ๋ชจ๋“  ๊ฒƒ์€ ๋ธŒ๋žœ์นญ์„ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ํ”„๋กœ์ ํŠธ์˜ ํ”„๋กœ๋•์…˜ ๋ฒ„์ „์€ ๋ฉ”์ธ ๋ธŒ๋žœ์น˜์— ์žˆ์Šต๋‹ˆ๋‹ค.ย 

์ƒˆ ๊ธฐ๋Šฅ์„ ์‹คํ—˜ํ•˜๊ฑฐ๋‚˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ค€๋น„๊ฐ€ ๋˜๋ฉด ํ”„๋กœ์ ํŠธ์˜ ์ƒˆ ๋ธŒ๋žœ์น˜๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๋ธŒ๋žœ์น˜๋Š” ์ฒ˜์Œ์—๋Š” ๊ธฐ๋ณธ๊ฐ’๊ณผ ๋™์ผํ•˜๊ฒŒ ํ‘œ์‹œ๋˜์ง€๋งŒ ๋ณ€๊ฒฝํ•œ ๋‚ด์šฉ์€ ๋ธŒ๋žœ์น˜์—๋งŒ ๋ฐ˜์˜๋ฉ๋‹ˆ๋‹ค.ย 

์ปค๋ฐ‹ ๋งŒ๋“ค๊ธฐ

ํ”„๋กœ์ ํŠธ ๋‚ด์˜ ํŒŒ์ผ์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋™์•ˆ ๊ธฐ๋Šฅ ๋ถ„๊ธฐ๋กœ ์ปค๋ฐ‹ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€์ ธ์˜ค๊ธฐ ์š”์ฒญ์„ ์—ด๊ณ  ํ˜‘์—…ํ•˜๊ธฐ

๊ฐ€์ ธ์˜ค๊ธฐ ์š”์ฒญ์„ ์—ด์–ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•ด ๋…ผ์˜ํ•˜์„ธ์š”. ํ’€ ์š”์ฒญ์€ ์ฝ”๋“œ ๊ฐœ์„ ์˜ ์‹œ์ž‘์ ์ด ๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ฝ”๋“œ๊ฐ€ ์™„๋ฒฝํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ 

๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ๊ฐ€๋Šฅํ•œ ํ•œ ๋นจ๋ฆฌ ํ’€ ์š”์ฒญ์„ ์—ฌ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํ”„๋กœ์„ธ์Šค ๊ณผ์ •์—์„œ ํŒ€ ๊ตฌ์„ฑ์›๊ณผ ๊ณต๋™ ์ž‘์—…์ž์—๊ฒŒ ๊ฐ€์‹œ์„ฑ์„ ๋ถ€์—ฌํ•˜๊ณ  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋‹ค๋ฅธ ๋ฐฉํ–ฅ์œผ๋กœ ์ง„ํ–‰๋  ๊ฒฝ์šฐ ๋ถˆํ•„์š”ํ•œ ์ž‘์—…๋Ÿ‰์„ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฉ”์ธ ๋ถ„๊ธฐ์— ๋ณ‘ํ•ฉํ•˜๊ธฐ

ํŒ€์ด ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ์Šน์ธํ•˜๋ฉด ๊ธฐ๋Šฅ ๋ถ„๊ธฐ์—์„œ ๋ฉ”์ธ ๋ถ„๊ธฐ๋กœ ํ’€ ์š”์ฒญ์„ ๋ฐฐํฌํ•˜๊ณ  ๋ณ‘ํ•ฉํ•ฉ๋‹ˆ๋‹ค.ย 

์ด๋ก ์ ์œผ๋กœ๋Š” ๋ฉ‹์ ธ ๋ณด์ž…๋‹ˆ๋‹ค. ์ด์ œ ์‹คํ–‰์— ์˜ฎ๊ฒจ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

Git ์„ค์น˜ํ•˜๊ธฐ

์ด ์œ ๋‹›์˜ ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์—์„œ Git ์˜ˆ๋ฅผ ์‚ดํŽด๋ณด๊ธฐ ์ „์— ๋จผ์ € ์ปดํ“จํ„ฐ์— Git์„ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋กœ์ปฌ์—์„œ ์ €์žฅ์†Œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Git ์›น ์‚ฌ์ดํŠธ๋ฅผ ๋ฐฉ๋ฌธํ•˜์—ฌ Git ๊ณต์‹ ๋ฒ„์ „์„ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋”ฐ๋ฅด์„ธ์š”. ์„ค์น˜ ์‹œ ๊ธฐ๋ณธ ์„ค์ •์„ ๋ชจ๋‘ ์ˆ˜๋ฝํ•ฉ๋‹ˆ๋‹ค.

GitHub ๊ณ„์ • ๊ฐ€์ž… ๋ฐ ์ €์žฅ์†Œ ๋งŒ๋“ค๊ธฐ

๊ฐ€์žฅ ๋จผ์ € ํ•ด์•ผ ํ•  ์ผ์€ GitHub ๊ฐœ์ธ ๊ณ„์ •์— ๊ฐ€์ž…ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๋ฒ„์ „์€ GitHub์˜ ๋ฌด๋ฃŒ ๋ฒ„์ „์ด๋ฉฐ ์ด๋ฅผ ํ†ตํ•ด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์œผ๋กœ๋Š” ์ž‘์—…ํ•  ์ €์žฅ์†Œ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

  1. ๋จธ๋ฆฌ๊ธ€์—์„œ ์ƒˆ๋กœ ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•˜๊ณ  New repository(์ƒˆ ์ €์žฅ์†Œ)๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  2. Owner(์†Œ์œ ์ž)์—์„œ ๋‚ด ๊ณ„์ •์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  3. Repository(์ €์žฅ์†Œ) ์ด๋ฆ„์— best-repo-ever๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  4. Public(๊ณต๊ฐœ)์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  5. Initialize this repository with(์ €์žฅ์†Œ ์ดˆ๊ธฐํ™”)์—์„œ Add a README file(README ํŒŒ์ผ ์ถ”๊ฐ€)์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  6. ๊ทธ๋Ÿฐ ๋‹ค์Œ Create repository(์ €์žฅ์†Œ ๋งŒ๋“ค๊ธฐ)๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

GitHub์—์„œ์˜ ์ž‘์—…๊ณผ ๋กœ์ปฌ์—์„œ์˜ ์ž‘์—… ๋น„๊ตํ•˜๊ธฐ

GitHub์—์„œ ์ง์ ‘ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์€ ๋กœ์ปฌ ์ปดํ“จํ„ฐ์—์„œ ์ž‘์—…ํ•˜๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค. ์ต์ˆ™ํ•œ IDE ๋˜๋Š” ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋ช‡ ๊ฐ€์ง€ ์ค‘์š”ํ•œ ์šฉ์–ด๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  • ์›๊ฒฉ ์ €์žฅ์†Œ๋Š” GitHub์— ์žˆ๋Š” ์ €์žฅ์†Œ ์‚ฌ๋ณธ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ณต๋™ ์ž‘์—…์ž๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์›๊ฒฉ ์ €์žฅ์†Œ์™€ ๋™๊ธฐํ™”ํ•˜์—ฌ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ทธ๋ฃน ๋‚ด ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์†Œ์Šค๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  • ๋กœ์ปฌ ์ €์žฅ์†Œ๋Š” ์‚ฌ์šฉ์ž์˜ ์ปดํ“จํ„ฐ์— ์ €์žฅ๋œ git ์ €์žฅ์†Œ์ž…๋‹ˆ๋‹ค. ๋กœ์ปฌ ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์›๊ฒฉ ์ €์žฅ์†Œ์— ์—ฐ๊ฒฐ๋œ ๊ฒฝ์šฐ ๋กœ์ปฌ ์ €์žฅ์†Œ๋Š” ๋ชจ๋“  ํŒŒ์ผ, ๋ธŒ๋žœ์น˜ ๋ฐ ๋‚ด์—ญ์„ ํฌํ•จํ•˜์—ฌ ์›๊ฒฉ ์ €์žฅ์†Œ์— ์žˆ๋Š” ๋ชจ๋“  ๊ฒƒ์ด ์žˆ๋Š” ์ „์ฒด ๋ณต์‚ฌ๋ณธ์ด ๋ฉ๋‹ˆ๋‹ค.

๋กœ์ปฌ ๋ฐ ์›๊ฒฉ ์ €์žฅ์†Œ๋Š” Git์—์„œ git clone, git fetch, git pull ๋ฐ git push์˜ ๋„ค ๊ฐ€์ง€ ๋„คํŠธ์›Œํฌ ๋ช…๋ น ์ค‘ ํ•˜๋‚˜๋ฅผ ์‹คํ–‰ํ•  ๋•Œ๋งŒ ์ƒํ˜ธ ์ž‘์šฉํ•ฉ๋‹ˆ๋‹ค.

์ €์žฅ์†Œ์—์„œ ๋กœ์ปฌ๋กœ ์ž‘์—…ํ•˜๋ ค๋ฉด ๋จผ์ € ์ปดํ“จํ„ฐ์—์„œ ๋ณต์ œ๋ณธ์„ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ €์žฅ์†Œ๋ฅผ ๋ณต์ œํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. GitHub์—์„œ ๋ฐฉ๊ธˆ ๋งŒ๋“  ์ €์žฅ์†Œ์˜ Code(์ฝ”๋“œ) ํƒญ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  2. Code(์ฝ”๋“œ) ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  3. ๋ณต์ œ URL์„ ํด๋ฆฝ๋ณด๋“œ์— ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.
  4. ๋ช…๋ น ํ–‰ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์—ฝ๋‹ˆ๋‹ค. Mac ๋˜๋Š” Linux๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ํ„ฐ๋ฏธ๋„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Windows์˜ ๊ฒฝ์šฐ Git Bash๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. Git Bash๋Š” Git๊ณผ ํ•จ๊ป˜ ์„ค์น˜๋ฉ๋‹ˆ๋‹ค.
  5. GitHub์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ €์žฅ์†Œ ์ „์ฒด ๋ณต์‚ฌ๋ณธ์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
    git clone URL

    ์œ„์—์„œ ๋ณต์‚ฌํ•œ ๋ณต์ œ URL๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    Cloning into 'best-repo-ever'...

    remote: Enumerating objects: 3, done.

    remote: Counting objects: 100% (3/3), done.

    remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)

    Receiving objects: 100% (3/3), done.

  1. ๋ณต์ œ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ๋ณต์ œ ์ž‘์—…์œผ๋กœ ์ƒ์„ฑ๋œ ์ƒˆ ๋””๋ ‰ํ„ฐ๋ฆฌ
    cd best-repo-ever๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

๋กœ์ปฌ ํ™˜๊ฒฝ ์„ค์ •ํ•˜๊ธฐ

์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด ๋ช‡ ๊ฐ€์ง€ ๊ธฐ๋ณธ ๊ตฌ์„ฑ์„ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๋Ÿฌํ•œ ๊ตฌ์„ฑ์€ ํ•œ ๋ฒˆ๋งŒ ์„ค์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. Git์„ ์‚ฌ์šฉํ•˜๋ฉด ์„ธ ๊ฐ€์ง€ ์ˆ˜์ค€์—์„œ ๊ตฌ์„ฑ ์˜ต์…˜์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๊ตฌ์„ฑ ๋ช…๋ น ์˜ต์…˜์„ ํ™•์ธํ•ด๋ณด์„ธ์š”.

๋ช…๋ น ์˜ต์…˜

์„ค๋ช…

git config --system

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

git config --global

์‚ฌ์šฉ์ž ์ˆ˜์ค€์˜ ์„ค์ •์œผ๋กœ ์‚ฌ์šฉ์ž ๊ณ„์ •์—๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

git config --local

์ €์žฅ์†Œ ์ˆ˜์ค€์˜ ์„ค์ •์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ๊ตฌ์„ฑ์ด ์„ค์ •๋œ ํŠน์ • ์ €์žฅ์†Œ์—๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. Git ๊ตฌ์„ฑ์˜์˜ ๊ธฐ๋ณธ๊ฐ’์€ --local์ž…๋‹ˆ๋‹ค.

Git์—์„œ ์ž๋™์œผ๋กœ ์„ค์ •๋˜๋Š” ๊ฒƒ์ด ๋ช‡ ๊ฐ€์ง€ ์žˆ์Šต๋‹ˆ๋‹ค. git config --list๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์„ธ ๊ฐ€์ง€ ์ˆ˜์ค€์˜ ํ™˜๊ฒฝ ์„ค์ •์„ ๋ชจ๋‘ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Git๋Š” ์‚ฌ์šฉ์ž ์ด๋ฆ„ ๋ฐ ์ด๋ฉ”์ผ ์ฃผ์†Œ์— ๋Œ€ํ•œ ํ™˜๊ฒฝ ์„ค์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ๋งŒ๋“  ๊ฐ ์ปค๋ฐ‹์— ๋Œ€ํ•ด ๊ณ ์œ ํ•œ ์ง€๋ฌธ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.ย 

์ด๋Ÿฌํ•œ ์„ค์ • ์—†์ด๋Š” ์ปค๋ฐ‹์„ ๋งŒ๋“ค ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ๋ช…๋ น์ค„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ง์ ‘ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

git config --global user.name "First Last"

๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹ค์Œ์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

git config --global user.email "you@email.com"
์ฐธ๊ณ 

์„ค์ •์ด ์™„๋ฃŒ๋˜์—ˆ๋‹ค๋Š” ํ™•์ธ ๋ฉ”์‹œ์ง€๋Š” ํ‘œ์‹œ๋˜์ง€ ์•Š์ง€๋งŒ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š๋Š” ํ•œ ์„ค์ •์€ ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

autocrlf ์„ค์ •

๋‹ค์Œ์œผ๋กœ core.autocrlf๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค(autocrlf๋Š” ์ž๋™ ์บ๋ฆฌ์ง€ ๋ฆฌํ„ด ๋ผ์ธ ํ”ผ๋“œ์˜ ์•ฝ์ž). ์„œ๋กœ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์€ ํ–‰์˜ ๋ ๋ถ€๋ถ„๊ณผ ์ค„ ๋ฐ”๊ฟˆ์„ ๋‹ค๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์šด์˜ ์ฒด์ œ์—์„œ ์ƒ์„ฑ๋œ ํŒŒ์ผ์„ ์—ด ๋•Œ ์ด ํ™˜๊ฒฝ ์„ค์ • ์˜ต์…˜์ด ์„ค์ •๋˜์–ด ์žˆ์ง€ ์•Š์€ ๊ฒฝ์šฐ Git์€ ์šด์˜ ์ฒด์ œ๊ฐ€ ํ–‰ ๋ ๋ถ€๋ถ„์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์— ๋”ฐ๋ผ ํŒŒ์ผ์„ ๋ณ€๊ฒฝํ•œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค.

Windows ์‚ฌ์šฉ์ž์˜ ๊ฒฝ์šฐ ๋‹ค์Œ์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

git config --global core.autocrlf true

Mac ๋˜๋Š” Linux ์‚ฌ์šฉ์ž์˜ ๊ฒฝ์šฐ ๋‹ค์Œ์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

git config --global core.autocrlf input

GitHub๋กœ ํŒŒ์ผ ์ถ”์ ํ•˜๊ธฐ

GitHub๋กœ ์ž‘์—…ํ•˜๋ ค๋ฉด ์š”์ฒญ์„ ์ธ์ฆํ•  ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋ช…๋ น์ค„ ์ธํ„ฐ๋ ‰์…˜์—์„œ๋Š” GitHub CLI๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋ฐ์Šคํฌํ†ฑ์˜ ๊ฒฝ์šฐ GitHub Desktop์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฑƒ์ง€์˜ ๊ฒฝ์šฐ GitHub Desktop์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  1. GitHub Desktop์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
  2. GitHub Desktop์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
  3. GitHub.com์— ๋กœ๊ทธ์ธ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  4. ์ง€์‹œ์— ๋”ฐ๋ผ ์•ก์„ธ์Šค๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
  5. Configure Git(Git ์„ค์ •)์—์„œ Use my GitHub account name and email address(๋‚ด GitHub ๊ณ„์ • ๋ฐ ์ด๋ฉ”์ผ ์ฃผ์†Œ ์‚ฌ์šฉ)๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  6. Finish(์™„๋ฃŒ)๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

GitHub Desktop์— ์˜ค์‹  ๊ฒƒ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฏธ GitHub์—์„œ ์ €์žฅ์†Œ๋ฅผ ๋ณต์ œํ–ˆ์œผ๋ฏ€๋กœ ๋กœ์ปฌ ์ €์žฅ์†Œ๋ฅผ ์›๊ฒฉ GitHub ์ €์žฅ์†Œ์™€ ์—ฐ๊ฒฐํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  1. Add an Existing Repository from your Local Drive(๋กœ์ปฌ ๋“œ๋ผ์ด๋ธŒ์—์„œ ๊ธฐ์กด ์ €์žฅ์†Œ ์ถ”๊ฐ€)๋ฅผ ํด๋ฆญํ•˜๊ฑฐ๋‚˜ File(ํŒŒ์ผ) > Add Local Repository(๋กœ์ปฌ ์ €์žฅ์†Œ ์ถ”๊ฐ€)๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  2. Choose(์„ ํƒ)๋ฅผ ํด๋ฆญํ•˜์—ฌ best-repo-ever ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ฐพ์•„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
    Choose(์„ ํƒ)๊ฐ€ ๊ฐ•์กฐ ํ‘œ์‹œ๋œ Add Local Repository(๋กœ์ปฌ ์ €์žฅ์†Œ ์ถ”๊ฐ€) ์ฐฝ
  1. Open(์—ด๊ธฐ)์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  2. Add Repository(์ €์žฅ์†Œ ์ถ”๊ฐ€)๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
    Current Repository(ํ˜„์žฌ ์ €์žฅ์†Œ)๊ฐ€ best-repo-ever๋กœ ์„ค์ •๋˜๊ณ  Current Branch(ํ˜„์žฌ ๋ธŒ๋žœ์น˜)๊ฐ€ main์œผ๋กœ ์„ค์ •๋œ GitHub Desktop

์ด์ œ ์ €์žฅ์†Œ์˜ ๋กœ์ปฌ ๋ณต์‚ฌ๋ณธ์ด ์žˆ๊ณ  Git์„ ์„ค์ •ํ•˜๊ณ  GitHub์— ์ธ์ฆํ–ˆ์œผ๋ฏ€๋กœ GitHub ์›Œํฌํ”Œ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ณ€๊ฒฝํ•  ์ค€๋น„๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Git์œผ๋กœ ์ž‘์—…ํ•  ๋•Œ ๋ช…๋ น์ค„, GitHub Desktop, GitHub ์‚ฌ์ด๋ฅผ ์˜ค๊ฐ€๋ฉฐ ์ž‘์—…ํ•˜๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋จผ์ € README.md ํŒŒ์ผ์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ณ€๊ฒฝํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.ย 

1๋‹จ๊ณ„: ๋ธŒ๋žœ์น˜ ๋งŒ๋“ค๊ธฐ

ํ„ฐ๋ฏธ๋„์—์„œ ๋กœ์ปฌ ๋ธŒ๋žœ์น˜ ๋ชฉ๋ก์„ ๋ณด๋ ค๋ฉด git branch๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ main ๋ธŒ๋žœ์น˜ 1๊ฐœ๋งŒ ํ‘œ์‹œ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.ย 

์ž‘์—…์„ ์œ„ํ•œ ์ƒˆ ๋ธŒ๋žœ์น˜(myfeaturebranch)๋ฅผ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  1. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
    git branch myfeaturebranch
  1. ๋‹ค์Œ์„ ์ž…๋ ฅํ•˜์—ฌ ํ•ด๋‹น ๋ธŒ๋žœ์น˜๋กœ ์ฒดํฌ์•„์›ƒํ•ฉ๋‹ˆ๋‹ค.
    git checkout myfeaturebranch

๊ทธ๋Ÿฌ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

git checkout myfeaturebranch

Switched to branch 'myfeaturebranch'

์ฐธ๊ณ 

๋‹ค๋ฅธ VCS์—์„œ Checkout์— ๋Œ€ํ•ด ๋“ค์–ด๋ณธ ์ ์ด ์žˆ๋‹ค๋ฉด Git์—์„œ์™€๋Š” ๋‹ค๋ฅธ ์˜๋ฏธ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Git์—์„œ์˜ ์ฒดํฌ์•„์›ƒ์€ HEAD๋ผ๋Š” ์ค‘์š”ํ•œ ํฌ์ธํ„ฐ๋ฅผ ์ด๋™ํ•˜๋Š” ๊ฒƒ์ด๋ฉฐ ์ด ๊ฒฝ์šฐ ์ž‘์—…์ž๋Š” ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜๋กœ ์ด๋™ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. HEAD๋Š” ๋ธŒ๋žœ์น˜์˜ ์ฒซ ๋ถ€๋ถ„์„ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค. HEAD์— ๋Œ€ํ•ด์„œ๋Š” ๋งˆ์ง€๋ง‰ ์œ ๋‹›์—์„œ ๋” ๋งŽ์ด ๋‹ค๋ค„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.ย 

2๋‹จ๊ณ„: README.md ํŒŒ์ผ์„ ๋ณ€๊ฒฝํ•˜๊ณ  ๋กœ์ปฌ ์ €์žฅ์†Œ์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ ์šฉํ•˜๊ธฐ

์ด์ œ ์ƒˆ ๋ธŒ๋žœ์น˜๋ฅผ ํ™•์ธํ–ˆ์œผ๋‹ˆ ๋ช‡ ๊ฐ€์ง€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ ์šฉํ•˜๊ณ  Git์ด ์‹ค์ œ๋กœ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

  1. ์ €์žฅ์†Œ์—์„œ README.md๋ฅผ ์—ฝ๋‹ˆ๋‹ค.
  2. ์ต์ˆ™ํ•œ ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ผ๋ถ€ ์ปจํ…์ธ ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  3. ์™„๋ฃŒ๋˜๋ฉด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

ํŒŒ์ผ์„ ์ผ๋ถ€ ๋ณ€๊ฒฝํ–ˆ๋‹ค๋ฉด ์ฒซ ๋ฒˆ์งธ ์Šค๋ƒ…์ƒท์„ ๋งŒ๋“ค ์ฐจ๋ก€์ž…๋‹ˆ๋‹ค. ๋ช…๋ น ํ–‰์—์„œ ์ž‘์—…ํ•  ๊ฒฝ์šฐ 2๋‹จ๊ณ„ ์ปค๋ฐ‹์ด๋ผ๋Š” ๊ฐœ๋…์„ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋กœ์ปฌ์—์„œ ์ž‘์—…ํ•  ๋•Œ Git์€ ํŒŒ์ผ๊ณผ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํŠธ๋ฆฌ 3๊ฐœ์— ์ •๋ฆฌํ•˜์—ฌ ๋‚ด์—ญ์„ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค. ์ด 3๊ฐœ์˜ ํŠธ๋ฆฌ๋Š” ์ž‘์—…, ์Šคํ…Œ์ด์ง•(์ธ๋ฑ์Šค๋ผ๊ณ ๋„ ํ•จ) ๋ฐ ์ด๋ ฅ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ์˜ ์ถ”๊ฐ€, ์‚ญ์ œ ๋ฐ ๋ณ€๊ฒฝ์€ ์ž‘์—… ํŠธ๋ฆฌ์—์„œ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

Git์˜ 3๊ฐœ ํŠธ๋ฆฌ์ธ ์ž‘์—…, ์Šคํ…Œ์ด์ง• ๋ฐ ๋‚ด์—ญ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋‹ค์ด์–ด๊ทธ๋žจ.

๋ฒ„์ „ ๊ด€๋ฆฌ์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ์ž‘์—…์˜ ๊ฐœ๋ณ„ ๋‹จ์œ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํŒŒ์ผ ๋ชจ์Œ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ํ•ด๋‹น ๋‹จ์œ„๋Š” ์Šคํ…Œ์ด์ง• ์˜์—ญ์— ๋งŒ๋“ญ๋‹ˆ๋‹ค.

์ทจํ•ฉํ•œ ์ž‘์—… ๋‹จ์œ„์— ๋ฌธ์ œ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ ์Šคํ…Œ์ด์ง• ์˜์—ญ์˜ ๋ชจ๋“  ๊ฒƒ์„ ์Šค๋ƒ…์ƒท์œผ๋กœ ์ฐ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์ปค๋ฐ‹์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

git status, git add ๋ฐ git commit ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ์™„๋ฃŒํ•ฉ๋‹ˆ๋‹ค.ย 

  1. ๋‹ค์Œ์„ ์ž…๋ ฅํ•˜์—ฌ ์ž‘์—… ํŠธ๋ฆฌ์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
    git status

    README.md ํŒŒ์ผ์ด ์ˆ˜์ •๋˜์—ˆ์ง€๋งŒ, ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ปค๋ฐ‹์„ ์œ„ํ•ด ์Šคํ…Œ์ด์ง•๋˜์ง€ ์•Š์€ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    โ€œโ€
  1. ๋‹ค์Œ์„ ์ž…๋ ฅํ•˜์—ฌ ์ž‘์—… ํŠธ๋ฆฌ์—์„œ ์Šคํ…Œ์ด์ง• ์˜์—ญ์œผ๋กœ ํŒŒ์ผ์„ ์˜ฎ๊น๋‹ˆ๋‹ค.
    git add README.md
  1. ๋‹ค์Œ์„ ์ž…๋ ฅํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
    git status

    README.md ํŒŒ์ผ์ด Changes to be committed(์ปค๋ฐ‹๋  ๋ณ€๊ฒฝ ์‚ฌํ•ญ)์— ์žˆ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    โ€œโ€
  1. ๋‹ค์Œ์„ ์ž…๋ ฅํ•˜์—ฌ ์ฒซ ๋ฒˆ์งธ ์Šค๋ƒ…์ƒท์„ ์ฐ์Šต๋‹ˆ๋‹ค.
    git commit -m "My first commit"
  1. ๋‹ค์Œ์„ ์ž…๋ ฅํ•˜์—ฌ ์ €์žฅ์†Œ ์ƒํƒœ๋ฅผ ๋‹ค์‹œ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
    git status
  1. ์ปค๋ฐ‹ํ•  ๋‚ด์šฉ์ด ์—†์œผ๋ฉฐ ์ž‘์—… ํŠธ๋ฆฌ๊ฐ€ ๊นจ๋—ํ•œ ์ƒํƒœ์ž…๋‹ˆ๋‹ค.

3๋‹จ๊ณ„: ์›๊ฒฉ ์ €์žฅ์†Œ์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ ๋ณด๋‚ด๊ธฐ

ํ˜„์žฌ ์ด ์ปค๋ฐ‹์€ ๋กœ์ปฌ์—์„œ๋งŒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์›๊ฒฉ ์ €์žฅ์†Œ๋ฅผ ํ™•์ธํ•˜๋ฉด ๋ธŒ๋žœ์น˜ ๋˜๋Š” ๋ฐฉ๊ธˆ ๋ณ€๊ฒฝํ•œ ๋‚ด์šฉ์ด ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์›๊ฒฉ์—์„œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ณด๋ ค๋ฉด ๋จผ์ € ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์›๊ฒฉ ์ €์žฅ์†Œ๋กœ ํ‘ธ์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.ย 

์ด ๋ธŒ๋žœ์น˜๋ฅผ ๋กœ์ปฌ๋กœ ์ƒ์„ฑํ–ˆ์œผ๋ฏ€๋กœ GitHub Desktop์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋‹น ๋ธŒ๋žœ์น˜๋ฅผ ์›๊ฒฉ ์ €์žฅ์†Œ์— ๊ฒŒ์‹œํ•ฉ๋‹ˆ๋‹ค.

  1. GitHub Desktop์„ ์—ฝ๋‹ˆ๋‹ค.
  2. Publish branch(๋ธŒ๋žœ์น˜ ๊ฒŒ์‹œ)๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

4๋‹จ๊ณ„: ํ’€ ์š”์ฒญ ๋งŒ๋“ค๊ธฐ

๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์›๊ฒฉ ์ €์žฅ์†Œ๋กœ ํ‘ธ์‹œํ–ˆ์œผ๋ฏ€๋กœ ์ด์ œ GitHub์—์„œ ํ’€ ์š”์ฒญ์„ ์—ด์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.ย 

  1. ์›น์—์„œ GitHub ๊ณ„์ •์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
  2. Pull Request(ํ’€ ์š”์ฒญ) ํƒญ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  3. New Pull Request(์ƒˆ๋กœ์šด ํ’€ ์š”์ฒญ)๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  4. Base(๋ฒ ์ด์Šค) ๋“œ๋กญ๋‹ค์šด์—์„œ main(๋ฉ”์ธ)์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  5. Compare(๋น„๊ต) ๋“œ๋กญ๋‹ค์šด์—์„œ myfeaturebranch๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๋ฉ”์ธ ๋ธŒ๋žœ์น˜์™€ myfeaturebranch ๊ฐ„์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ฐจ์ด๋ฅผ ๋ณด์—ฌ ์ฃผ๋Š” GitHub์˜ ์Šคํฌ๋ฆฐ์ƒท.
  1. Create pull request(ํ’€ ์š”์ฒญ ๋งŒ๋“ค๊ธฐ)๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  2. Add a title(์ œ๋ชฉ ์ถ”๊ฐ€)์— My first commit(๋‚ด ์ฒซ ๋ฒˆ์งธ ์ปค๋ฐ‹)์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  3. ์›ํ•  ๊ฒฝ์šฐ ์„ค๋ช…์„ ์ถ”๊ฐ€ํ•˜์„ธ์š”.
  4. Create pull request(ํ’€ ์š”์ฒญ ๋งŒ๋“ค๊ธฐ)๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

์ฝ”๋“œ ๊ฒ€ํ† ๋ฅผ ํ†ตํ•œ ์ฝ”๋“œ์˜ ํ’ˆ์งˆ ๊ด€๋ฆฌํ•˜๊ธฐ

ํ’€ ์š”์ฒญ์˜ ๊ธฐ๋Šฅ์€ ๋‹จ์ˆœํžˆ ๋ธŒ๋žœ์น˜๋ฅผ ๋น„๊ตํ•˜๋Š” ๊ฒƒ๋งŒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ˆ˜๋™ ๋˜๋Š” ์ž๋™์œผ๋กœ ์ฝ”๋“œ๋ฅผ ๊ฒ€ํ† ํ•˜๊ณ  ํ’ˆ์งˆ์„ ๋ณด์ฆํ•˜๋Š” ์ˆ˜๋‹จ์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

์ผ๋ฐ˜ ๋Œ€ํ™”

Conversation(๋Œ€ํ™”) ํƒญ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ’€ ์š”์ฒญ์— ๋Œ€ํ•œ ์ผ๋ฐ˜์ ์ธ ์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ผ์ธ ๋Œ“๊ธ€

Files Changed(ํŒŒ์ผ ๋ณ€๊ฒฝ๋จ) ํƒญ์—์„œ ํ–‰ ์œ„๋กœ ๋งˆ์šฐ์Šค๋ฅผ ๊ฐ€์ ธ๊ฐ€๋ฉด ํŒŒ๋ž€์ƒ‰ + ์•„์ด์ฝ˜์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ์ด ์•„์ด์ฝ˜์„ ํด๋ฆญํ•˜๋ฉด ํŠน์ • ํ–‰์— ์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ–‰ ์ˆ˜์ค€์˜ ์ฝ”๋ฉ˜ํŠธ๋Š” ๊ถŒ์žฅํ•˜๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ถ”๊ฐ€์ ์œผ๋กœ ์„ค๋ช…ํ•˜๋Š” ์ข‹์€ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๋Œ€ํ™” ๋ณด๊ธฐ์—๋„ ์ฝ”๋ฉ˜ํŠธ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

ํ–‰ ์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ฃผ๋Š” ์Šคํฌ๋ฆฐ์ƒท.

๊ฒ€ํ† 

ํ–‰ ์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ Start a Review(๊ฒ€ํ†  ์‹œ์ž‘)๋ฅผ ์„ ํƒํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฆฌ๋ทฐ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ๋‹ค์ˆ˜์˜ ํ–‰ ์ฝ”๋ฉ˜ํŠธ๋ฅผ ์š”์•ฝ ๋ฉ”์‹œ์ง€๋กœ ๊ทธ๋ฃนํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒ€ํ† ๋ฅผ ์ œ์ถœํ•  ๊ฒฝ์šฐ ์ฝ”๋ฉ˜ํŠธ, ์Šน์ธ ๋˜๋Š” ๋ณ€๊ฒฝ ์š”์ฒญ ์—ฌ๋ถ€๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. GitHub์—์„œ ํ’€ ์š”์ฒญ ๊ฒ€ํ† ์™€ ๋ธŒ๋Ÿฐ์น˜ ๋ณดํ˜ธ๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฉด ํ’€ ์š”์ฒญ์— ๊ฒ€ํ† ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์˜ ํ†ตํ•ฉ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž๋™ํ™”๋œ ํ…Œ์ŠคํŠธ

CI/CD๋ฅผ ํ”„๋กœ์ ํŠธ์™€ ํ†ตํ•ฉํ•œ ๊ฒฝ์šฐ, ํ’€ ์š”์ฒญ์— ๋ฐ”๋กœ ๋ณด๊ณ ๋œ ํ…Œ์ŠคํŠธ ์ƒํƒœ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ…Œ์ŠคํŠธ๋Š” ์†์‰ฝ๊ฒŒ ๋งž์ถคํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐฐํฌํ•˜๊ธฐ

ํŒ€ ๊ตฌ์„ฑ์›์ด ํ’€ ์š”์ฒญ์„ ๊ฒ€ํ† ํ•˜๊ณ  ์Šน์ธํ•˜๊ณ  ํ•„์š”ํ•œ ํ…Œ์ŠคํŠธ๊ฐ€ ํ†ต๊ณผ๋˜๋ฉด ๋ธŒ๋žœ์น˜๋ฅผ ๋ฐฐํฌํ•˜๊ณ  ํ”„๋กœ๋•์…˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ, ๊ธฐ์กด ๋ฉ”์ธ ๋ธŒ๋žœ์น˜๋ฅผ ๋‹ค์‹œ ํ”„๋กœ๋•์…˜์— ๋ฐฐํฌํ•˜์—ฌ ๋กค๋ฐฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ณ€๊ฒฝ ์‚ฌํ•ญ ๋ณ‘ํ•ฉํ•˜๊ธฐ

๋ธŒ๋žœ์น˜๋ฅผ ๋ณ‘ํ•ฉํ•  ๋•Œ ๊ธฐ๋Šฅ ๋ธŒ๋žœ์น˜์—์„œ ์ปจํ…์ธ  ๋ฐ ๋‚ด์—ญ์„ ๊ฐ€์ ธ์™€์„œ ๋ฉ”์ธ ๋ธŒ๋žœ์น˜์˜ ์ปจํ…์ธ  ๋ฐ ๊ธฐ๋ก์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

๋ณ‘ํ•ฉ์€ ๋น ๋ฅด๊ณ  ์‰ฝ์Šต๋‹ˆ๋‹ค.

  1. GitHub์—์„œ Conversation(๋Œ€ํ™”) ํƒญ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  2. Merge pull request(ํ’€ ์š”์ฒญ ๋ณ‘ํ•ฉ)๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  3. ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€์™€ ์ƒ์„ธ ์„ค๋ช…์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
    Commit message(์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€), Extended description(์ƒ์„ธ ์„ค๋ช…), Commit email(์ปค๋ฐ‹ ์ด๋ฉ”์ผ), Confirm merge(๋ณ‘ํ•ฉ ํ™•์ธ) ๋ฒ„ํŠผ์ด ์žˆ๋Š” Merge(๋ณ‘ํ•ฉ) ์ฐฝ
  1. Confirm merge(๋ณ‘ํ•ฉ ํ™•์ธ)๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

ํŒ€์€ ๋ˆ„๊ฐ€ ํ’€ ์š”์ฒญ์„ ๋ณ‘ํ•ฉํ•ด์•ผ ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ๊ทœ์น™์„ ์ˆ˜๋ฆฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทœ์น™์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ณ‘ํ•ฉ์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผ ํ•˜๋ฏ€๋กœ ํ’€ ์š”์ฒญ์„ ๋งŒ๋“  ์‚ฌ๋žŒ์ด ๋ณ‘ํ•ฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ํ”„๋กœ์ ํŠธ ํŒ€ ๋‚ด์— ํ•œ ์‚ฌ๋žŒ์„ ๋ฐฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ผ๊ด€์„ฑ์ด ๋ณด์žฅ๋˜์ง€๋งŒ ์ž‘์—… ์†๋„๊ฐ€ ๋А๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ’€ ์š”์ฒญ์„ ์ƒ์„ฑํ•œ ์‚ฌ๋žŒ ์ด์™ธ์˜ ๋ชจ๋“  ์‚ฌ์šฉ์ž๊ฐ€ ๋ณ‘ํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ํ•œ ๊ฑด ์ด์ƒ์˜ ๊ฒ€ํ† ๊ฐ€ ์‹ค์‹œ๋ฉ๋‹ˆ๋‹ค.

๋ชจ๋‘ ๋™๊ธฐํ™” ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๊ธฐ

ํ’€ ์š”์ฒญ์„ ๋ณ‘ํ•ฉํ•œ ํ›„ GitHub์—์„œ ๋ธŒ๋žœ์น˜๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. ์‚ญ์ œํ•˜๋ ค๋ฉด ํ’€ ์š”์ฒญ ํ™”๋ฉด์—์„œ Delete branch(๋ธŒ๋žœ์น˜ ์‚ญ์ œ)๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ GitHub์—์„œ ๋ณ‘ํ•ฉ ๋ฐ ์‚ญ์ œ๋ฅผ ํ•˜๋”๋ผ๋„ ์ €์žฅ์†Œ ๋กœ์ปฌ ๋ณต์‚ฌ๋ณธ์ด ์ž๋™์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ๋ช…๋ น ํ–‰ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ๋Œ์•„๊ฐ€์„œ ๋ชจ๋“  ๊ฒƒ์„ ๋™๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค.

๋จผ์ € GitHub์—์„œ ๋ณ€๊ฒฝํ•œ ๋‚ด์šฉ์„ ์ €์žฅ์†Œ ๋กœ์ปฌ ๋ณต์‚ฌ๋ณธ์œผ๋กœ ๊ฐ€์ ธ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  1. ๋‹ค์Œ์„ ์ž…๋ ฅํ•˜์—ฌ ๊ธฐ๋ณธ ๋ธŒ๋žœ์น˜๋กœ ๋‹ค์‹œ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
    git checkout main
  1. ๋‹ค์Œ์„ ์ž…๋ ฅํ•˜์—ฌ GitHub์—์„œ ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.
    git pull
์ฐธ๊ณ 

git pull์€ GitHub์—์„œ ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ฒ€์ƒ‰ํ•œ ๋‹ค์Œ ํ˜„์žฌ ์‚ฌ์šฉ ์ค‘์ธ ๋ถ„๊ธฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์—ฌ ์›๊ฒฉ์—์„œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํฌํ•จํ•˜๋Š” ๋ณตํ•ฉ ๋ช…๋ น์ž…๋‹ˆ๋‹ค. ์‹คํ–‰ ์ค‘์ธ ๋‘ ๊ฐœ์˜ ๋ณ„๊ฐœ์˜ ๋ช…๋ น์€ git fetch์™€ git merge์ž…๋‹ˆ๋‹ค.

Salesforce ๋„์›€๋ง์—์„œ Trailhead ํ”ผ๋“œ๋ฐฑ์„ ๊ณต์œ ํ•˜์„ธ์š”.

Trailhead์— ๊ด€ํ•œ ์—ฌ๋Ÿฌ๋ถ„์˜ ์˜๊ฒฌ์— ๊ท€ ๊ธฐ์šธ์ด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด์ œ Salesforce ๋„์›€๋ง ์‚ฌ์ดํŠธ์—์„œ ์–ธ์ œ๋“ ์ง€ ์ƒˆ๋กœ์šด ํ”ผ๋“œ๋ฐฑ ์–‘์‹์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ ์˜๊ฒฌ ๊ณต์œ ํ•˜๊ธฐ