Infra/Git

[Git] ์ด๋ฏธ Pushํ•œ Commit ๋ฉ”์‹œ์ง€ ์ˆ˜์ •ํ•˜๊ธฐ + GitHub Token ์ธ์ฆ

carsumin 2025. 11. 22. 00:18
๊ฐœ์š”
  • ์‹ค๋ฌด์—์„œ๋Š” ํšŒ์‚ฌ์˜ ์ปค๋ฐ‹ ๊ทœ์น™์„ ๋”ฐ๋ผ์„œ Git์„ ๊ด€๋ฆฌํ–ˆ์—ˆ๋‹ค.
  • ์•ž์œผ๋กœ ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” Git ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ๊ทœ์น™์— ๋งž๊ฒŒ ํ†ต์ผํ•˜๋ ค๊ณ  ์ˆ˜์ •ํ–ˆ๋‹ค.
  • ์ด๋ฏธ master ๋ธŒ๋žœ์น˜์— push๋œ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๊นŒ์ง€ ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•œ ์ƒํ™ฉ
  • ํ˜‘์—…์„ ํ•˜๋Š” ์ƒํ™ฉ์ด๋ผ๋ฉด ์ด๋Ÿฐ ๋ถˆํ•„์š”ํ•œ ์ง“์€ ์•ˆํ•˜๊ฒ ์ง€๋งŒ ํ˜ผ์ž ์“ฐ๋Š” ๊นƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋…ธ๊ฐ€๋‹ค ์ž‘์—…์„ ์ข€ ํ–ˆ๋‹ค...

 

๋‹จ๊ณ„
  • 1. ์ž‘์—…์ค‘์ธ ํŒŒ์ผ์ด ์žˆ๋Š”์ง€ ํ™•์ธ
git status

 

  • 2. ์ž‘์—…์ค‘์ธ ํŒŒ์ผ์ด ์žˆ์„ ๊ฒฝ์šฐ ๋ณด๊ด€
git stash

 

 

-> git status๋กœ cleanํ•œ ๊ฒƒ์„ ํ™•์ธํ•˜๋ฉด ์•„๋ž˜ ๋‹จ๊ณ„๋ฅผ ์ง„ํ–‰

 

  • 3. ์ˆ˜์ •ํ•  ์ปค๋ฐ‹ ๋ฒ”์œ„ ์„ ํƒํ•˜๊ณ  Rebase
    • ์˜ˆ์‹œ : ์ตœ๊ทผ 8๊ฐœ์˜ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ์ˆ˜์ •ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด HEAD~8
git rebase -i HEAD~8

 

  • 4. rebase-todo ํ™”๋ฉด์—์„œ ์ˆ˜์ •ํ•  ์ปค๋ฐ‹ ์„ ํƒ
    • ์—ฌ๊ธฐ์„œ ์ข€ ํ—ท๊ฐˆ๋ ค์„œ ์ž‘์—…์„ ๋‘ ๋ฒˆํ–ˆ๋Š”๋ฐ... ์ง€๊ธˆ ํ™”๋ฉด์—์„œ๋Š” ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ”๊พธ๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ, ์–ด๋–ค ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์ •ํ• ์ง€ ๊ณ ๋ฅด๋Š”(?) ์ž‘์—…์ด๋‹ค. ๋””ํดํŠธ๋Š” pick์œผ๋กœ ๋˜์–ด์žˆ๋Š”๋ฐ ์ˆ˜์ •ํ•˜๊ณ  ์‹ถ์€ ์ปค๋ฐ‹๋ฉ”์‹œ์ง€๋ฅผ pick์—์„œ reword๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.
    • ์ €์žฅ : Ctrl + O -> Enter , ์ข…๋ฃŒ : Ctrl + X
reword 0fe4e0e  [2025.11.20] ์ฃผ์„ ์ถ”๊ฐ€
reword 3603bec  [2025.11.20] product, seller DDD ์ถ”๊ฐ€
reword 2d4ac59  [2025.11.20] Payment DDD ์ถ”๊ฐ€
...
pick d4179b8    Create README.md  ← ์ˆ˜์ •ํ•˜์ง€ ์•Š์„ ์ปค๋ฐ‹

 

  • 5. ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ์ˆ˜์ •
    • ์ด์ œ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์—๋””ํ„ฐ ํ™”๋ฉด์ด ๋œฌ๋‹ค. ์—ฌ๊ธฐ์„œ ์ˆ˜์ •ํ•˜๊ณ  ์ €์žฅ - ์ข…๋ฃŒ ๊ณผ์ • ๋ฐ˜๋ณต.
[2025.11.20] ์ฃผ์„ ์ถ”๊ฐ€
# Please enter the commit message...

 

  • 6. Rebase ์™„๋ฃŒ ํ›„ ์›๊ฒฉ ์ €์žฅ์†Œ์— ๊ฐ•์ œ ํ‘ธ์‹œ
git push origin master --force-with-lease

 

 

์—ฌ๊ธฐ๊นŒ์ง€ ์ง„ํ–‰ํ–ˆ๋Š”๋ฐ ๊นƒ ์•„์ด๋””/ํŒจ์Šค์›Œ๋“œ ์ž…๋ ฅํ•˜๋ฉด ' remote: Invalid username or token. Password authentication is not supported for Git operations. ' ๋ผ๊ณ  ๋œฌ๋‹ค.

 

๊นƒํ—ˆ๋ธŒ๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ push๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์•„์„œ ํ† ํฐ์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ํ•œ๋‹ค.

 

  • 7. Personal Access Token ์ƒ์„ฑํ•˜๊ธฐ
    • ๊นƒ ๋ฉ”์ธ์—์„œ ํ”„๋กœํ•„ - Settings - ์ขŒ์ธก ๋งจ์•„๋ž˜ Developer settings - Personal access tokens - Tokens (classic)
    • ๊ผญ classic์œผ๋กœ ์ƒ์„ฑํ•ด์•ผ ํ•จ
    • Note : ์›ํ•˜๋Š” ์ด๋ฆ„
    • Expiration: 90 days ์ถ”์ฒœ
    • Scopes: repo (์ด๊ฒƒ๋งŒ ์ฒดํฌ)

 

  • 8. ์ƒ์„ฑ๋œ ํ† ํฐ์„ push ๋น„๋ฐ€๋ฒˆํ˜ธ๋กœ ์‚ฌ์šฉ
Username: GitHub ID
Password: (์ƒ์„ฑํ•œ ํ† ํฐ ๋ถ™์—ฌ๋„ฃ๊ธฐ)

 

  • 9. ์ˆ˜์ •๋œ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ํ™•์ธ
git log --oneline --decorate -n 8

 

๋กœ๊ทธ๋กœ ์ž˜ ์ˆ˜์ •๋๋Š”์ง€ ํ™•์ธํ•˜๋ฉด ๋œ๋‹ค!

 

๊ทธ๋ฆฌ๊ณ  ์•„๊นŒ stash ํ–ˆ๋˜๊ฑด pop ์œผ๋กœ ๋‹ค์‹œ ๊บผ๋‚ด์˜ค๋ฉด ๋œ๋‹ค.

 

์ด์ƒ ๋…ธ๊ฐ€๋‹ค ์ž‘์—… ๋...