Skip to main content

Git์—์„œ GitHub ์ž๊ฒฉ ์ฆ๋ช… ์บ์‹ฑ

HTTPS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ GitHub ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋ณต์ œํ•˜๋Š” ๊ฒฝ์šฐ GitHub CLI ๋˜๋Š” GCM(Git Credential Manager)์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž๊ฒฉ ์ฆ๋ช…์„ ๊ธฐ์–ตํ•ด๋‘๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

Platform navigation

์ด ๋ฌธ์„œ์˜ ๋‚ด์šฉ

ํŒ

SSH๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ GitHub ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋ณต์ œํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค๋ฅธ ์ž๊ฒฉ ์ฆ๋ช…์„ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์‹  SSH ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์ฆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. SSH ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ SSH๋ฅผ ํ†ตํ•œ GitHub ์—ฐ๊ฒฐ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

GitHub CLI

GitHub CLI๋Š” Git ์ž‘์—…์˜ ๊ธฐ๋ณธ ํ”„๋กœํ† ์ฝœ๋กœ HTTPS๊ฐ€ ์„ ํƒ๋œ ๊ฒฝ์šฐ ์ž๋™์œผ๋กœ Git ์ž๊ฒฉ ์ฆ๋ช…์„ ์ €์žฅํ•˜๊ณ  GitHub ์ž๊ฒฉ ์ฆ๋ช…์œผ๋กœ Git์— ์ธ์ฆํ• ์ง€ ๋ฌป๋Š” ํ”„๋กฌํ”„ํŠธ์— โ€œ์˜ˆโ€๋ผ๊ณ  ๋Œ€๋‹ตํ•ฉ๋‹ˆ๋‹ค.

  1. macOS, Windows ๋˜๋Š” Linux์— GitHub CLI๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
  2. ๋ช…๋ น์ค„์—์„œ gh auth login์„ ์ž…๋ ฅํ•˜๊ณ  ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.
    • Git ์ž‘์—…์˜ ๊ธฐ๋ณธ ํ”„๋กœํ† ์ฝœ์„ ๋ฌป๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜๋ฉด HTTPS๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
    • GitHub ์ž๊ฒฉ ์ฆ๋ช…์œผ๋กœ Git์— ์ธ์ฆํ•  ๊ฒƒ์ธ์ง€ ๋ฌป๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜๋ฉด Y๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

GitHub CLI์—์„œ ์ธ์ฆํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ gh auth login์„ ์ฐธ์กฐํ•˜์„ธ์š”.

Git Credential Manager

GCM(Git Credential Manager)์€ ์ž๊ฒฉ ์ฆ๋ช…์„ ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅํ•˜๊ณ  HTTPS๋ฅผ ํ†ตํ•ด GitHub์— ์—ฐ๊ฒฐํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. GCM์„ ์‚ฌ์šฉํ•˜๋ฉด GCM์ด 2FA(2๋‹จ๊ณ„ ์ธ์ฆ)๋ฅผ ๋น„๋กฏํ•œ ์ธ์ฆ์„ ์‚ฌ์šฉ์ž ๋Œ€์‹  ๊ด€๋ฆฌํ•˜๋ฏ€๋กœ ์ˆ˜๋™์œผ๋กœ personal access token์„(๋ฅผ) ๋งŒ๋“ค๊ณ  ์ €์žฅํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

  1. Homebrew๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Git์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

    brew install git
    
  2. Homebrew๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ GCM์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

    brew install --cask git-credential-manager
    

macOS์˜ ๊ฒฝ์šฐ GCM์ด ์ž๋™์œผ๋กœ Git์„ ๊ตฌ์„ฑํ•˜๋ฏ€๋กœ git config๋ฅผ ์‹คํ–‰ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์— ์ธ์ฆ์ด ํ•„์š”ํ•œ HTTPS URL์„ ๋ณต์ œํ•  ๋•Œ Git์—์„œ ๋ธŒ๋ผ์šฐ์ € ์ฐฝ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ๊ทธ์ธํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋จผ์ € OAuth app์— ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณ„์ • ๋˜๋Š” ์กฐ์ง์— 2๋‹จ๊ณ„ ์ธ์ฆ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ 2FA ๊ณผ์ œ๋„ ์™„๋ฃŒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์„ฑ๊ณต์ ์œผ๋กœ ์ธ์ฆ๋˜๋ฉด ์ž๊ฒฉ ์ฆ๋ช…์ด macOS ํ‚ค ์ง‘ํ•ฉ์— ์ €์žฅ๋˜๊ณ  HTTPS URL์„ ๋ณต์ œํ•  ๋•Œ๋งˆ๋‹ค ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ž๊ฒฉ ์ฆ๋ช…์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๋Š” ํ•œ, Git์—์„œ ๋ช…๋ น์ค„์— ์ž๊ฒฉ ์ฆ๋ช…์„ ๋‹ค์‹œ ์ž…๋ ฅํ•˜๋„๋ก ์š”๊ตฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  1. GCM์„ ํฌํ•จํ•˜๋Š” Git for Windows๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ฆด๋ฆฌ์Šค ํŽ˜์ด์ง€์—์„œ Git for Windows ๋ฆด๋ฆฌ์Šค๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

ํ•ญ์ƒ ์ตœ์‹  ๋ฒ„์ „์„ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ตœ์†Œํ•œ GitHub์— ๋Œ€ํ•œ OAuth ์ง€์›์„ ์ œ๊ณตํ•˜๋Š” ์ฒซ ๋ฒˆ์งธ ๋ฒ„์ „์ธ ๋ฒ„์ „ 2.29 ์ด์ƒ์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์— ์ธ์ฆ์ด ํ•„์š”ํ•œ HTTPS URL์„ ๋ณต์ œํ•  ๋•Œ Git์—์„œ ๋ธŒ๋ผ์šฐ์ € ์ฐฝ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ๊ทธ์ธํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋จผ์ € OAuth app์— ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณ„์ • ๋˜๋Š” ์กฐ์ง์— 2๋‹จ๊ณ„ ์ธ์ฆ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ 2FA ๊ณผ์ œ๋„ ์™„๋ฃŒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์„ฑ๊ณต์ ์œผ๋กœ ์ธ์ฆ๋˜๋ฉด ์ž๊ฒฉ ์ฆ๋ช…์ด Windows Credential Manager์— ์ €์žฅ๋˜๊ณ  HTTPS URL์„ ๋ณต์ œํ•  ๋•Œ๋งˆ๋‹ค ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ž๊ฒฉ ์ฆ๋ช…์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๋Š” ํ•œ, Git์—์„œ ๋ช…๋ น์ค„์— ์ž๊ฒฉ ์ฆ๋ช…์„ ๋‹ค์‹œ ์ž…๋ ฅํ•˜๋„๋ก ์š”๊ตฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.


๊ฒฝ๊ณ 

์ด์ „ ๋ฒ„์ „์˜ Git for Windows๋Š” Windows์šฉ Git Credential Manager์™€ ํ•จ๊ป˜ ์ œ๊ณต๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ „ ์ œํ’ˆ์€ ๋” ์ด์ƒ ์ง€์›๋˜์ง€ ์•Š์œผ๋ฉฐ OAuth๋ฅผ ํ†ตํ•ด GitHub์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ตœ์‹  ๋ฒ„์ „์˜ Git for Windows๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๊ฒฝ๊ณ 

Windows์šฉ ์ž๊ฒฉ ์ฆ๋ช… ๊ด€๋ฆฌ์ž์—์„œ ์ž˜๋ชป๋˜์—ˆ๊ฑฐ๋‚˜ ์˜ค๋ž˜๋œ ์ž๊ฒฉ ์ฆ๋ช…์„ ์บ์‹œํ•œ ๊ฒฝ์šฐ Git์—์„œ GitHub์— ์•ก์„ธ์Šคํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. Git์—์„œ ์ž๊ฒฉ ์ฆ๋ช…์„ ์ž…๋ ฅํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜๋„๋ก ์บ์‹œ๋œ ์ž๊ฒฉ ์ฆ๋ช…์„ ์ดˆ๊ธฐํ™”ํ•˜๋ ค๋ฉด Windows ์ œ์–ดํŒ์˜ ์‚ฌ์šฉ์ž ๊ณ„์ • > ์ž๊ฒฉ ์ฆ๋ช… ๊ด€๋ฆฌ์ž์—์„œ ์ž๊ฒฉ ์ฆ๋ช… ๊ด€๋ฆฌ์ž์— ์•ก์„ธ์Šคํ•ฉ๋‹ˆ๋‹ค. GitHub ํ•ญ๋ชฉ์„ ์ฐพ์•„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

Linux์˜ ๊ฒฝ์šฐ Git ๋ฐ GCM์„ ์„ค์น˜ํ•œ ๋‹ค์Œ, GCM์„ ์‚ฌ์šฉํ•˜๋„๋ก Git์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

  1. ๋ฐฐํฌํŒ์˜ ํŒจํ‚ค์ง• ์‹œ์Šคํ…œ์—์„œ Git์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. ์ง€์นจ์€ ์‹คํ–‰ํ•˜๋Š” Linux ๋ฒ„์ „์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

  2. GCM์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. GCM ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ์ง€์นจ์„ ์ฐธ์กฐํ•˜์„ธ์š”. ์ง€์นจ์€ ์‹คํ–‰ํ•˜๋Š” Linux ๋ฒ„์ „์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

  3. GCM์„ ์‚ฌ์šฉํ•˜๋„๋ก Git์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฑ์—… ์ €์žฅ์†Œ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ ์žˆ์œผ๋ฏ€๋กœ GCM ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ์„ค์ •์„ ์™„๋ฃŒํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ GCM Linux๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๋‹ค์Œ์— ์ธ์ฆ์ด ํ•„์š”ํ•œ HTTPS URL์„ ๋ณต์ œํ•  ๋•Œ Git์—์„œ ๋ธŒ๋ผ์šฐ์ € ์ฐฝ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ๊ทธ์ธํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋จผ์ € OAuth app์— ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณ„์ • ๋˜๋Š” ์กฐ์ง์— 2๋‹จ๊ณ„ ์ธ์ฆ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ 2FA ๊ณผ์ œ๋„ ์™„๋ฃŒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

Linux์— ์ž๊ฒฉ ์ฆ๋ช…์„ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ Pro Git์—์„œ ์ž๊ฒฉ ์ฆ๋ช… ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.


์ž์„ธํ•œ ๋‚ด์šฉ์„ ๋ณด๊ฑฐ๋‚˜ GCM ๊ด€๋ จ ์ด์Šˆ๋ฅผ ๋ณด๊ณ ํ•˜๋ ค๋ฉด Git ์ž๊ฒฉ ์ฆ๋ช… ๊ด€๋ฆฌ์ž์—์„œ ๊ณต์‹ GCM ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.