[Git] Credential Helper๋กœ GitHub ์ธ์ฆํ•˜๊ธฐ ๐Ÿ”‘

Posted by Euisuk's Dev Log on May 28, 2024

[Git] Credential Helper๋กœ GitHub ์ธ์ฆํ•˜๊ธฐ ๐Ÿ”‘

์›๋ณธ ๊ฒŒ์‹œ๊ธ€: https://velog.io/@euisuk-chung/Git-Credential-Helper๋กœ-GitHub-์ธ์ฆํ•˜๊ธฐ

Credential Helper๋กœ GitHub ์ธ์ฆํ•˜๊ธฐ

GitHub๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ๋งค๋ฒˆ ์ธ์ฆ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๊ฒƒ์ด ๋ฒˆ๊ฑฐ๋กœ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Git์€ credential ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๊ท€์ฐฎ์•„

์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” Git Credential Helper๋ฅผ ์ด์šฉํ•ด ์ธ์ฆ ์ •๋ณด๋ฅผ ๋ณด๋‹ค ํŽธ๋ฆฌํ•˜๊ฒŒ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

1. Credential Helper์˜ ๊ฐœ์š”

Git Credential Helper๋Š” ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค:

  • Cache: ์ธ์ฆ ์ •๋ณด๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— 15๋ถ„ ๋™์•ˆ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๋” ๊ธธ๊ฒŒ ์ €์žฅํ•˜๋ ค๋ฉด ์‹œ๊ฐ„์„ ์—ฐ์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Store: ์ธ์ฆ ์ •๋ณด๋ฅผ ๋””์Šคํฌ์— ์ €์žฅํ•˜์—ฌ ์˜๊ตฌ์ ์œผ๋กœ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ์ธ ์ปดํ“จํ„ฐ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.

์ด ์™ธ์—๋„ OS ์ž์ฒด์—์„œ ์ œ๊ณตํ•˜๋Š” Keychain ์‹œ์Šคํ…œ์„ ํ†ตํ•ด ์ธ์ฆ ์ •๋ณด๋ฅผ ๋” ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. Git Config ์„ค์ •

Git์˜ ์„ค์ • ์ •๋ณด๋Š” git config ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ „์ฒด config ๋ฆฌ์ŠคํŠธ ๋ณด๊ธฐ

1
git config --global --list

์‚ฌ์šฉ์ž ์ด๋ฆ„๊ณผ ์ด๋ฉ”์ผ ์„ค์ •

1
2
git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"
  • --global: ์ „์—ญ์ ์ธ ์„ค์ •์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

์„ค์ • ์‚ญ์ œํ•˜๊ธฐ

1
2
git config --unset --global user.name
git config --unset --global user.email

3. Credential Helper - Cache

Cache ์„ค์ •ํ•˜๊ธฐ

1
git config --global credential.helper cache

์œ„ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•œ ํ›„, git config --global --list ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์„ค์ •์ด ์ถ”๊ฐ€๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ 15๋ถ„ ๋™์•ˆ ์ธ์ฆ ์ •๋ณด๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

Cache ์‹œ๊ฐ„ ์—ฐ์žฅํ•˜๊ธฐ

1
git config --global credential.helper 'cache --timeout=3600'

์ด ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด 3600์ดˆ, ์ฆ‰ 1์‹œ๊ฐ„ ๋™์•ˆ ์ธ์ฆ ์ •๋ณด๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋˜๋„๋ก ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4. Credential Helper - Store

Store ์„ค์ •ํ•˜๊ธฐ

1
git config --global credential.helper store

์ด ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์ธ์ฆ ์ •๋ณด๋ฅผ ๋””์Šคํฌ์— ์ €์žฅํ•˜์—ฌ ์˜๊ตฌ์ ์œผ๋กœ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ €์žฅ๋œ ๋กœ๊ทธ์ธ ์ •๋ณด๋Š” ~/.git-credentials ํŒŒ์ผ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

5. Credential Helper - Keychain

Mac์—์„œ Keychain ์„ค์ •ํ•˜๊ธฐ

1
git config --global credential.helper osxkeychain
  1. ์ƒˆ๋กœ์šด ํ† ํฐ ๋“ฑ๋กํ•˜๊ธฐ

    • Launchpad -> ๊ธฐํƒ€(ํด๋”) -> ํ‚ค์ฒด์ธ ์ ‘๊ทผ
    • ๋˜๋Š” Finder -> ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ -> ์œ ํ‹ธ๋ฆฌํ‹ฐ -> ํ‚ค์ฒด์ธ ์ ‘๊ทผ.app ์‹คํ–‰
    • ์ˆ˜๋™์œผ๋กœ github.com ํ•ญ๋ชฉ์„ ์ฐพ์•„ ์‚ญ์ œ (์ธํ„ฐ๋„ท ์•”ํ˜ธ ํ•ญ๋ชฉ ํด๋ฆญ)
  2. ์‚ฌ์šฉ์ž ์ด๋ฆ„๊ณผ ์ด๋ฉ”์ผ ์„ค์ •

    1
    2
    
    git config --global user.name "Your Name"
    git config --global user.email "your_email@example.com"
    
  3. ์ƒˆ๋กœ ๋“ฑ๋ก๋œ ๊ณ„์ •์œผ๋กœ Git ๋ช…๋ น์–ด ์‹คํ–‰

    1
    2
    
    git commit -m "Your commit message"
    git push
    
    • push ๋ช…๋ น์–ด ์‹คํ–‰ ์‹œ, ์•„์ด๋””์™€ ํŒจ์Šค์›Œ๋“œ(ํ† ํฐ)๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
    • ์ดํ›„ ์ž๋™์œผ๋กœ ํ‚ค์ฒด์ธ์— ์ƒˆ๋กœ์šด ๊ณ„์ • ์ •๋ณด๊ฐ€ ๋“ฑ๋ก๋ฉ๋‹ˆ๋‹ค.

Windows์—์„œ Keychain ์„ค์ •ํ•˜๊ธฐ

1
git config --global credential.helper wincred

Windows์˜ ๊ฒฝ์šฐ, โ€œ์ž๊ฒฉ ์ฆ๋ช… ๊ด€๋ฆฌ์ž(Credential Manager)โ€์—์„œ ๋“ฑ๋ก๋œ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ remote repo์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ˆ˜์ •ํ–ˆ๋‹ค๋ฉด(token์ด ๋งŒ๋ฃŒ๋˜๋Š” ๋“ฑ์œผ๋กœ ๊ฐฑ์‹ ํ–ˆ๋‹ค๋ฉด) ์ •๋ณด๋ฅผ ์‚ญ์ œํ•˜๊ณ  ์ƒˆ๋กœ ๋“ฑ๋กํ•ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  1. Credential Manager ์—ด๊ธฐ

    • ์ œ์–ดํŒ -> ์ž๊ฒฉ ์ฆ๋ช… ๊ด€๋ฆฌ์ž๋ฅผ ์—ฝ๋‹ˆ๋‹ค.
    • Windows ์ž๊ฒฉ ์ฆ๋ช…์—์„œ github.com ํ•ญ๋ชฉ์„ ์ฐพ์•„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
  2. ์ƒˆ๋กœ ๋“ฑ๋ก๋œ ๊ณ„์ •์œผ๋กœ Git ๋ช…๋ น์–ด ์‹คํ–‰

    1
    2
    
    git commit -m "Your commit message"
    git push
    
    • push ๋ช…๋ น์–ด ์‹คํ–‰ ์‹œ, ์•„์ด๋””์™€ ํŒจ์Šค์›Œ๋“œ(ํ† ํฐ)๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
    • ์ดํ›„ ์ž๋™์œผ๋กœ Credential Manager์— ์ƒˆ๋กœ์šด ๊ณ„์ • ์ •๋ณด๊ฐ€ ๋“ฑ๋ก๋ฉ๋‹ˆ๋‹ค.

6. Credential Helper ์„ค์ • ์‚ญ์ œํ•˜๊ธฐ

๋•Œ๋•Œ๋กœ Credential Helper ์„ค์ •์ด ์ž˜๋ชป๋˜์—ˆ๊ฑฐ๋‚˜ ์ƒˆ๋กœ์šด ์„ค์ •์œผ๋กœ ๋ฐ”๊พธ๊ณ  ์‹ถ์„ ๋•Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿด ๋•Œ๋Š” ๊ธฐ์กด ์„ค์ •์„ ์‚ญ์ œํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

Cache ์„ค์ • ์‚ญ์ œํ•˜๊ธฐ

1
git config --unset --global credential.helper

Store ์„ค์ • ์‚ญ์ œํ•˜๊ธฐ

1
git config --unset --global credential.helper

Keychain ์„ค์ • ์‚ญ์ œํ•˜๊ธฐ

Mac์—์„œ๋Š” ํ‚ค์ฒด์ธ ์ ‘๊ทผ ์•ฑ์—์„œ github.com ํ•ญ๋ชฉ์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

Windows์—์„œ๋Š” ์ž๊ฒฉ ์ฆ๋ช… ๊ด€๋ฆฌ์ž์—์„œ github.com ํ•ญ๋ชฉ์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

์ด์ œ Git Credential Helper๋ฅผ ์ด์šฉํ•ด GitHub ์ธ์ฆ ์ •๋ณด๋ฅผ ๋ณด๋‹ค ํŽธ๋ฆฌํ•˜๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ์ธ ์ปดํ“จํ„ฐ์—์„œ๋Š” Store๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ๊ณต์šฉ ์ปดํ“จํ„ฐ์—์„œ๋Š” Cache๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค. Keychain ์‹œ์Šคํ…œ์„ ์ด์šฉํ•˜๋ฉด ๋”์šฑ ์•ˆ์ „ํ•˜๊ฒŒ ์ธ์ฆ ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ค๋Š˜๋„ ๊ธด ๊ธ€ ์ฝ์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹คโญ



-->