๐Ÿš€ ์˜คํ”ˆ์†Œ์Šค ๊ธฐ์—ฌํ•˜๊ธฐ: Fork๋ถ€ํ„ฐ PR๊นŒ์ง€

Tasker_Jangยท2025๋…„ 5์›” 24์ผ
1

์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ์— ์ฒ˜์Œ์œผ๋กœ ๊ธฐ์—ฌํ•˜๋ฉด์„œ ๊ฒช์—ˆ๋˜ ์‹œํ–‰์ฐฉ์˜ค์™€ ํ•ด๊ฒฐ ๊ณผ์ •์„ ์ƒ์„ธํžˆ ๊ธฐ๋กํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Git, GitHub, Vim ๋“ฑ ๋„๊ตฌ๋“ค์„ ๋‹ค๋ฃจ๋ฉด์„œ ๋ฐฐ์šด ์ ๋“ค์„ ๊ณต์œ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๐ŸŽฏ ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

๋Œ€์ƒ ํ”„๋กœ์ ํŠธ: qodo-ai/pr-agent

  • AI ๊ธฐ๋ฐ˜ PR ๋ถ„์„ ๋„๊ตฌ
  • Issue #1793: clip_tokens ํ•จ์ˆ˜์˜ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ๋ฐ ๋ฌธ์„œํ™” ๊ฐœ์„  ์š”์ฒญ

ํŒ€ ์ž‘์—… ํ™˜๊ฒฝ:

  • ์›๋ณธ repo: qodo-ai/pr-agent
  • ํŒ€ fork: group-3-sPRinter/pr-agent
  • ๊ฐœ์ธ fork: TaskerJang/pr-agent

๐Ÿ”„ Fork์™€ Clone ์„ค์ •

์ดˆ๊ธฐ ์ƒํ™ฉ

E:\pr-agent>git remote -v
origin  https://github.com/group-3-sPRinter/pr-agent.git (fetch)
origin  https://github.com/group-3-sPRinter/pr-agent.git (push)

ํŒ€ fork์—์„œ ์ž‘์—…์„ ์™„๋ฃŒํ•œ ์ƒํƒœ์—์„œ, ์›๋ณธ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์— ๊ฐœ์ธ ๊ธฐ์—ฌ๋กœ PR์„ ๋ณด๋‚ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

Remote ์ €์žฅ์†Œ ๊ด€๋ฆฌ

# ์›๋ณธ ์ €์žฅ์†Œ๋ฅผ upstream์œผ๋กœ ์ถ”๊ฐ€
git remote add upstream https://github.com/qodo-ai/pr-agent.git

# ๊ฐœ์ธ fork๋ฅผ myfork๋กœ ์ถ”๊ฐ€
git remote add myfork https://github.com/TaskerJang/pr-agent.git

# ํ™•์ธ
git remote -v

๐Ÿ˜… ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ์ˆ˜์ •์˜ ํ—˜๋‚œํ•œ ์—ฌ์ •

๋ฌธ์ œ ์ƒํ™ฉ

ํŒ€ ์ž‘์—… ์‹œ ํ•œ๊ธ€๋กœ ์ž‘์„ฑํ•œ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋“ค:

cf0e430c docs: clip_tokens ํ•จ์ˆ˜ docstring ๊ฐœ์„  ๋ฐ ์˜ˆ์ œ ์ถ”๊ฐ€
62e82e4e test: clip_tokens ํ•จ์ˆ˜ ํฌ๊ด„์ ์ธ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€

์˜คํ”ˆ์†Œ์Šค ๊ธฐ์—ฌ ์‹œ์—๋Š” ์˜์–ด ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๊ฐ€ ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค.

์‹œ๋„ํ•œ ๋ฐฉ๋ฒ•๋“ค

1์ฐจ ์‹œ๋„: Interactive Rebase

git rebase -i HEAD~2

๋ฌธ์ œ ๋ฐœ์ƒ: Vim ์Šค์™‘ ํŒŒ์ผ ์ถฉ๋Œ

E325: ATTENTION
Found a swap file by the name "/e/pr-agent/.git/rebase-merge/.git-rebase-todo.swp"

2์ฐจ ์‹œ๋„: ์Šค์™‘ ํŒŒ์ผ ์ •๋ฆฌ

# ์Šค์™‘ ํŒŒ์ผ ์‚ญ์ œ
rm /e/pr-agent/.git/rebase-merge/.git-rebase-todo.swp

# ๋˜๋Š” Windows์—์„œ
del ".git\rebase-merge\.git-rebase-todo.swp"

๐Ÿ”ง Vim๊ณผ์˜ ์ฒซ ๋งŒ๋‚จ (๊ทธ๋ฆฌ๊ณ  ๊ณ ์ƒ)

Vim ๊ธฐ๋ณธ ์กฐ์ž‘๋ฒ• ํ•™์Šต

๋ชจ๋“œ ์ „ํ™˜:

  • i: Insert ๋ชจ๋“œ ์ง„์ž…
  • Esc ๋˜๋Š” Ctrl+C: Normal ๋ชจ๋“œ๋กœ ๋ณต๊ท€
  • Ctrl+[: Esc ๋Œ€์•ˆ

ํŽธ์ง‘ ์ž‘์—…:

  • pick์„ reword๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ์ˆ˜์ • ์„ค์ •

์ €์žฅ ๋ฐ ์ข…๋ฃŒ:

  • :wq: ์ €์žฅํ•˜๊ณ  ์ข…๋ฃŒ
  • :q!: ์ €์žฅํ•˜์ง€ ์•Š๊ณ  ๊ฐ•์ œ ์ข…๋ฃŒ

์‹ค์ œ ๊ฒฝํ—˜ํ•œ ๋ฌธ์ œ๋“ค

  1. INSERT ๋ชจ๋“œ์—์„œ ๋น ์ ธ๋‚˜์˜ค์ง€ ๋ชปํ•˜๋Š” ๋ฌธ์ œ

    • Esc ํ‚ค๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š์„ ๋•Œ: Ctrl+C ์‚ฌ์šฉ
  2. ์Šค์™‘ ํŒŒ์ผ ์ถฉ๋Œ

    • ํ•ด๊ฒฐ์ฑ…: D (Delete) ์˜ต์…˜ ์„ ํƒ
  3. ์—ฌ๋Ÿฌ ์ค„ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ์ž…๋ ฅ

    git commit --amend -m "docs: improve clip_tokens function docstring and add examples
    
    - Enhanced function documentation with clearer descriptions
    - Added practical usage examples
    - Improved parameter and return value documentation"

๐Ÿ›  Git Rebase ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…

๋ฌธ์ œ ์ƒํ™ฉ๋“ค๊ณผ ํ•ด๊ฒฐ์ฑ…

1. Rebase ์ง„ํ–‰ ์ค‘ ์ค‘๋‹จ

git status
# On branch feature/clip-tokens-tests-and-docs
# No commands done.
# Next commands to do (2 remaining commands):
#    pick 62e82e4e test: clip_tokens ํ•จ์ˆ˜ ํฌ๊ด„์ ์ธ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€
#    pick cf0e430c docs: clip_tokens ํ•จ์ˆ˜ docstring ๊ฐœ์„  ๋ฐ ์˜ˆ์ œ ์ถ”๊ฐ€

ํ•ด๊ฒฐ:

# rebase ์„ค์ • ์ˆ˜์ •
git rebase --edit-todo

# ๋˜๋Š” ์™„์ „ ์ค‘๋‹จ ํ›„ ์žฌ์‹œ์ž‘
git rebase --abort

2. ๋‹จ๊ณ„๋ณ„ ์ปค๋ฐ‹ ์ˆ˜์ • ๋ฐฉ๋ฒ•

# ์ตœ์‹  ์ปค๋ฐ‹๋ถ€ํ„ฐ ๊ฐœ๋ณ„ ์ˆ˜์ •
git commit --amend -m "์ƒˆ๋กœ์šด ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€"

# ๊ทธ ๋‹ค์Œ ์ปค๋ฐ‹ ์ˆ˜์ •์„ ์œ„ํ•œ rebase
git rebase -i HEAD~2

โœ… ์ตœ์ข… PR ์ƒ์„ฑ

์„ฑ๊ณต์ ์ธ ๊ฒฐ๊ณผ

git log --oneline
e2586cb6 (HEAD -> feature/clip-tokens-tests-and-docs) docs: improve clip_tokens function docstring and add examples
1bc0d488 test: add comprehensive unit tests for clip_tokens function

PR ๊ณผ์ •

  1. ๊ฐœ์ธ GitHub ๊ณ„์ •์œผ๋กœ ์›๋ณธ ๋ ˆํฌ์ง€ํ† ๋ฆฌ Fork
  2. ๊ฐœ์ธ fork์— ํ‘ธ์‹œ
    git push myfork feature/clip-tokens-tests-and-docs
  3. GitHub์—์„œ ์›๋ณธ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋กœ PR ์ƒ์„ฑ

PR ํ…œํ”Œ๋ฆฟ ์˜์–ด ๋ณ€ํ™˜

ํ•œ๊ธ€๋กœ ์ž‘์„ฑํ•œ PR ์„ค๋ช…์„ ์˜์–ด๋กœ ๋ณ€ํ™˜:

## Pull Request Summary
This PR addresses Issue #1793 by adding comprehensive unit tests and improving documentation for the `clip_tokens` function.

## Key Changes
- Added 21 comprehensive unit tests in `tests/unittest/test_clip_tokens.py`
- Completely improved docstring for `clip_tokens` function
- Maintained perfect backward compatibility

๐Ÿ’ก ๋ฐฐ์šด ์ ๊ณผ ํŒ

Git ๊ด€๋ จ

  1. Remote ์ €์žฅ์†Œ ๊ด€๋ฆฌ์˜ ์ค‘์š”์„ฑ

    • upstream: ์›๋ณธ ์ €์žฅ์†Œ
    • origin: ํŒ€ ๋˜๋Š” ๊ฐœ์ธ fork
    • myfork: ๊ฐœ์ธ ๊ธฐ์—ฌ์šฉ fork
  2. ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ์ˆ˜์ • ๋ฐฉ๋ฒ•๋“ค

    # ์ตœ์‹  ์ปค๋ฐ‹๋งŒ ์ˆ˜์ •
    git commit --amend -m "์ƒˆ ๋ฉ”์‹œ์ง€"
    
    # ์—ฌ๋Ÿฌ ์ปค๋ฐ‹ ์ˆ˜์ •
    git rebase -i HEAD~n
  3. Rebase ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…

    # ๋ฌธ์ œ ๋ฐœ์ƒ ์‹œ ์ค‘๋‹จ
    git rebase --abort
    
    # ์Šค์™‘ ํŒŒ์ผ ์ •๋ฆฌ
    rm -rf .git/rebase-merge

Vim ๊ด€๋ จ

  1. ํ•„์ˆ˜ ๋ช…๋ น์–ด

    • i: ํŽธ์ง‘ ๋ชจ๋“œ
    • Esc/Ctrl+C: ์ผ๋ฐ˜ ๋ชจ๋“œ
    • :wq: ์ €์žฅ ํ›„ ์ข…๋ฃŒ
    • :q!: ๊ฐ•์ œ ์ข…๋ฃŒ
  2. ์Šค์™‘ ํŒŒ์ผ ์ฒ˜๋ฆฌ

    • D: ์Šค์™‘ ํŒŒ์ผ ์‚ญ์ œ
    • R: ๋ณต๊ตฌ
    • Q: ์ข…๋ฃŒ

์˜คํ”ˆ์†Œ์Šค ๊ธฐ์—ฌ ๊ด€๋ จ

  1. ์–ธ์–ด ํ†ต์ผ: ์˜์–ด ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€์™€ PR ์„ค๋ช…
  2. Fork ์ „๋žต: ๊ฐœ์ธ ๊ณ„์ •์œผ๋กœ fork ํ›„ ๊ธฐ์—ฌ
  3. ๊ถŒํ•œ ์ดํ•ด: upstream์— ์ง์ ‘ ํ‘ธ์‹œ ๋ถˆ๊ฐ€, fork๋ฅผ ํ†ตํ•œ ๊ธฐ์—ฌ

๐ŸŽ‰ ๋งˆ๋ฌด๋ฆฌ

์˜คํ”ˆ์†Œ์Šค ๊ธฐ์—ฌ๋ฅผ ํ•˜๋ฉด์„œ Git, Vim, GitHub์˜ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ๋“ค์„ ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•ด๋ณผ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

ํŠนํžˆ:

  • Git rebase๋ฅผ ํ†ตํ•œ ์ปค๋ฐ‹ ํžˆ์Šคํ† ๋ฆฌ ์ˆ˜์ •
  • Vim์˜ ๊ธฐ๋ณธ ์กฐ์ž‘๋ฒ•๊ณผ ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…
  • ์˜คํ”ˆ์†Œ์Šค ๊ธฐ์—ฌ ํ”„๋กœ์„ธ์Šค์˜ ์ „์ฒด ํ๋ฆ„

์„ ์ง์ ‘ ๊ฒฝํ—˜ํ•  ์ˆ˜ ์žˆ์–ด์„œ ๋งค์šฐ ๊ฐ’์ง„ ์‹œ๊ฐ„์ด์—ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ”— ์ฐธ๊ณ  ์ž๋ฃŒ


profile
ML Engineer ๐Ÿง  | AI ๋ชจ๋ธ ๊ฐœ๋ฐœ๊ณผ ์ตœ์ ํ™” ๊ฒฝํ—˜์„ ๊ธฐ๋กํ•˜๋ฉฐ ์„ฑ์žฅํ•˜๋Š” ๊ฐœ๋ฐœ์ž ๐Ÿš€ The light that burns twice as bright burns half as long โœจ

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