GIT for the Tree Project - Gifted-Children/Tree GitHub Wiki

GIT for the Tree Project

์‹œ์ž‘

Pycharm ์„ค์น˜

Pycharm

GIT ์—ฐ๋™(์ตœ์ดˆ 1ํšŒ)

  1. Pycharm ์‹คํ–‰

  2. VCS>Get from Version Control

  1. Clone

์ž‘์—…

์ด์Šˆ ํ™•์ธ ๋ฐ ๋“ฑ๋ก, ์‚ญ์ œ

  • ๋ชจ๋“  ์ž‘์—…์€ ์ด์Šˆ ๊ธฐ๋ฐ˜์œผ๋กœ ์ง„ํ–‰๋œ๋‹ค.

์ด์Šˆ ํ™•์ธ

  1. ๊นƒํ—™์— ์ ‘์†ํ•œ๋‹ค.

  2. psgstellar/Stellar๋กœ ์ด๋™ํ•œ๋‹ค.

  3. Code ํƒญ ์˜ค๋ฅธ์ชฝ์— issues ํƒญ์„ ํด๋ฆญํ•œ๋‹ค.

  4. ๋“ฑ๋ก๋˜์–ด ์žˆ๋Š” issue๋“ค์„ ํ™•์ธํ•œ๋‹ค.

์ด์Šˆ ๋“ฑ๋ก

  1. [์œ„ ์ด์Šˆ ํ™•์ธ ์„น์…˜]์˜ 3๋ฒˆ์—์„œ New issue ๋ฒ„ํŠผ์„ ํด๋ฆญํ•œ๋‹ค.

  2. ์ œ๋ชฉ, ๋‚ด์šฉ์„ ์ž‘์„ฑํ•œ๋‹ค.

  • ๋‚ด์šฉ ์ž‘์„ฑ ์‹œ, Write ํƒญ ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” Preview ํƒญ ํด๋ฆญ ์‹œ ์ž‘์„ฑํ•œ ๋งˆํฌ๋‹ค์šด์ด ์–ด๋–ป๊ฒŒ ํ‘œ์‹œ๋˜๋Š”์ง€๋ฅผ ํ™•์ธํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค.
  1. ํ•ด๋‹น ์ด์Šˆ๋ฅผ ๋‹ด๋‹นํ•  Assignees(๋‹ด๋‹น์ž)๋ฅผ ์„ ํƒํ•œ๋‹ค. (๋ณต์ˆ˜ ์„ ํƒ ๊ฐ€๋Šฅ)

  2. ์œ„ 3๋ฒˆ๊ณผ ๋™์ผ ๋ฐฉ์‹์œผ๋กœ Labels(๋ผ๋ฒจ) -> ํ•ด๋‹น ์‚ฌํ•ญ ์„ ํƒ -> ์—†์„ ์‹œ ์ƒˆ๋กœ ์ƒ์„ฑ, Projects(ํ”„๋กœ์ ํŠธ) -> The Stellar Project๋ฅผ ํด๋ฆญํ•œ๋‹ค., Milestone์€ ํ•ด๋‹น ์‚ฌํ•ญ ์„ ํƒ -> ์—†์„ ์‹œ ํŒจ์Šค

  3. Submit new issue๋ฅผ ํด๋ฆญํ•œ๋‹ค.

์ด์Šˆ ์‚ญ์ œ

  1. [์œ„ ์ด์Šˆ ํ™•์ธ ์„น์…˜]์˜ 3๋ฒˆ์—์„œ ์ž‘์—…์ด ๋๋‚œ ์ด์Šˆ๋ฅผ ํด๋ฆญํ•œ๋‹ค.

  2. Comment ์ž‘์„ฑ๋ž€ ์•„๋žซ์ชฝ์˜ Close issue๋ฅผ ํด๋ฆญํ•œ๋‹ค.

๋ธŒ๋Ÿฐ์น˜ ์ƒ์„ฑ

๋ณธ ์„น์…˜์€ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋ฐ˜์˜ํ•  ๋ธŒ๋Ÿฐ์น˜์—์„œ ๋ถ„๊ธฐํ•œ ์ƒˆ๋กœ์šด ์ž‘์—… ๋ธŒ๋Ÿฐ์น˜๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฃฌ๋‹ค.

๋ฐฉ๋ฒ• 1

git-branch-01.png

  1. ์™ผ์ชฝ ํ•˜๋‹จ์˜ ๋นจ๊ฐ„์ƒ‰ ๋„ค๋ชจ ๋ฐ•์Šค๋ฅผ ๋ˆ„๋ฅธ๋‹ค.

git-branch-02.png

  1. Local ์•„๋ž˜ ๋ธŒ๋Ÿฐ์น˜ ์ค‘์—์„œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋ฐ˜์˜ํ•  ๋ธŒ๋Ÿฐ์น˜๋ฅผ ์„ ํƒํ•œ๋‹ค.
  • ํ•„์ž๋Š” ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋ฐ˜์˜ํ•  ๋ธŒ๋Ÿฐ์น˜๊ฐ€ wiki์ด๋ฏ€๋กœ ์ด๋ฅผ ์„ ํƒํ–ˆ๋‹ค.
  • main ์™ผ์ชฝ ์ฑ…๊ฐˆํ”ผ ์•„์ด์ฝ˜์€ ํ˜„์žฌ ๋‚ด๊ฐ€ ์œ„์น˜ํ•ด์žˆ๋Š” ๋ธŒ๋Ÿฐ์น˜๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.)

git-branch-03.png

  1. ์„ ํƒํ•œ ํ›„ ์˜ค๋ฅธ์ชฝ ๋งˆ์šฐ์Šค๋ฅผ ๋ˆŒ๋Ÿฌ New Branch from Selected...์„ ์„ ํƒํ•œ๋‹ค.

git-branch-04.png

  1. ๋นจ๊ฐ„์ƒ‰ ๋„ค๋ชจ ๋ฐ•์Šค ๋‚ด์— ์ƒ์„ฑํ•  ๋ธŒ๋Ÿฐ์น˜๋ช…์„ ๊ธฐ์ž…ํ•œ๋‹ค.
  • ๋ธŒ๋Ÿฐ์น˜ ๋ช…๋ช…๊ทœ์น™์€ ์•„๋žซ์ชฝ ์„น์…˜์—์„œ ๋‹ค๋ฃฐ ์˜ˆ์ •.
  • ํ•„์ž๋Š” issue number 2์— ํ•ด๋‹นํ•˜๋Š” issue๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ์ž‘์—…์„ ์ง„ํ–‰ํ•  ๊ฒƒ์ด๋ฏ€๋กœ, feature/issue-#2๋ฅผ ๊ธฐ์ž…ํ•˜์˜€๋‹ค.
  • Checkout branch๋ฅผ ์ฒดํฌํ•˜๋ฉด ๋ธŒ๋Ÿฐ์น˜ ์ƒ์„ฑ ์ดํ›„ ๊ณง๋ฐ”๋กœ ํ•ด๋‹น ๋ธŒ๋Ÿฐ์น˜๋กœ ์ด๋™ํ•œ๋‹ค.
  1. Create ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ๊ธฐ์ž…ํ•œ ๋ธŒ๋Ÿฐ์น˜๋ช…์— ํ•ด๋‹นํ•˜๋Š” ๋ธŒ๋Ÿฐ์น˜๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

git-branch-05.png

  1. ๋ธŒ๋Ÿฐ์น˜ ์ƒ์„ฑ์ด ์™„๋ฃŒ๋˜์—ˆ๋‹ค๋ฉด feature ํ•˜์œ„์— issue-#2๋ผ๋Š” ๋ธŒ๋Ÿฐ์น˜๊ฐ€ ์ƒ์„ฑ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํ•„์ž๋Š” Checkout branch๋ฅผ ์ฒดํฌํ•˜์˜€์œผ๋ฏ€๋กœ ํ•ด๋‹น ๋ธŒ๋Ÿฐ์น˜ ์™ผ์ชฝ์— ์ฑ…๊ฐˆํ”ผ ๋ชจ์–‘์ด ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ํ˜„์žฌ feature/issue-#2 ๋ธŒ๋Ÿฐ์น˜์— ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.

๋ฐฉ๋ฒ• 2

git-branch-00-01.png

  1. ์˜ค๋ฅธ์ชฝ ํ•˜๋‹จ์˜ ๋นจ๊ฐ„์ƒ‰ ๋„ค๋ชจ ๋ฐ•์Šค๋ฅผ ๋ˆ„๋ฅธ๋‹ค.

  2. ์ดํ•˜ [๋ฐฉ๋ฒ• 1]์˜ 2-6๊ณผ ๋™์ผ.

Commit & Push

  1. ์ƒ์„ฑ๋œ ์ž‘์—… ๋ธŒ๋Ÿฐ์น˜ ๋˜๋Š” ์ž‘์—… ๋ธŒ๋Ÿฐ์น˜ ์ƒ์„ฑ ํ›„ ํ•ด๋‹น ๋ธŒ๋Ÿฐ์น˜๋กœ ์ด๋™ํ•œ๋‹ค.

  2. ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋งŒ๋“ ๋‹ค.

  • ํ•„์ž๋Š” issue #2์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋งŒ์กฑ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ์ž‘์—…์„ ์ง„ํ–‰ํ•˜์˜€๋‹ค.

git-branch-06.png

  1. ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์˜ ๋นจ๊ฐ„์ƒ‰ ๋„ค๋ชจ ๋ฐ•์Šค๋ฅผ ํด๋ฆญํ•œ๋‹ค.

  2. ์™ผ์ชฝ ์ปค๋ฐ‹ ํƒ์ƒ‰๊ธฐ์—์„œ Unversioned Files ์™ผ์ชฝ์˜ ํ™”์‚ดํ‘œ๋ฅผ ํด๋ฆญํ•œ๋‹ค.

  3. ๋‚˜์˜ค๋Š” ๋ฆฌ์ŠคํŠธ ๋ชฉ๋ก ์ค‘ ์ปค๋ฐ‹ ํ›„ ํ‘ธ์‰ฌํ•  ํ•ญ๋ชฉ๋“ค์„ ์„ ํƒํ•œ๋‹ค.

git-branch-08.png

  1. ์„ ํƒ ํ›„ ์•„๋žซ์ชฝ ๋นจ๊ฐ„์ƒ‰ ๋„ค๋ชจ ๋ฐ•์Šค์— ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.

  2. ์ž‘์„ฑ๊นŒ์ง€ ์™„๋ฃŒํ•˜์˜€๋‹ค๋ฉด, Commit and Push... ๋ฒ„ํŠผ์„ ํด๋ฆญํ•œ๋‹ค.

  3. ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ํ•œ๋ฒˆ ๋” ๊ฒ€ํ†  ํ›„ ํ‘ธ์‰ฌํ•  ์ˆ˜ ์žˆ๋Š” ์ฐฝ์ด ๋œฌ๋‹ค.

  4. ๋ณ€๊ฒฝ์‚ฌํ•ญ์— ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค๋ฉด Push ๋ฒ„ํŠผ์„ ํด๋ฆญํ•œ๋‹ค.

  • ์ฒซ ์‚ฌ์šฉ์ด๋ผ๋ฉด ์ž‘์€ ์ฐฝ์ด ๋œฐํ…๋ฐ Log in via Github...์„ ์„ ํƒํ•ด์ฃผ๋ฉด ๋œ๋‹ค.
  1. ํ‘ธ์‰ฌ๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ๋‹ค๋ฉด ์˜ค๋ฅธ์ชฝ ํ•˜๋‹จ์— Pushed ~ ํ˜•์‹์˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋œฌ๋‹ค.

PR

  1. ๊นƒํ—™ ์‚ฌ์ดํŠธ์— ์ ‘์†ํ•œ๋‹ค.

  2. ํ‘ธ์‰ฌํ•œ ํ•ด๋‹น ๋ ˆํŒŒ์ง€ํ† ๋ฆฌ๋กœ ์ด๋™ํ•œ๋‹ค.

  3. Pull Request๋ฅผ ํด๋ฆญํ•œ๋‹ค.

  4. New Pull Request๋ฅผ ํด๋ฆญํ•œ๋‹ค.

  5. compare์€ ํ‘ธ์‰ฌํ•œ ๋ธŒ๋Ÿฐ์น˜, ์ฆ‰ ์ž‘์—… ๋ธŒ๋Ÿฐ์น˜๋ฅผ ์„ ํƒํ•˜๊ณ , base๋Š” ๋ณ‘ํ•ฉํ•  ๋ธŒ๋Ÿฐ์น˜, ์ฆ‰ ์ž‘์—… ๋ธŒ๋Ÿฐ์น˜์—์„œ ๋ถ„๊ธฐํ•˜๊ธฐ ์ „์˜ ๋ธŒ๋Ÿฐ์น˜๋ฅผ ์„ ํƒํ•œ๋‹ค.

  • ๊ธฐ๋ณธ๊ฐ’์€ baes: main, compare: main์ด๋‹ค.
  1. Create pull request๋ฅผ ํด๋ฆญํ•œ๋‹ค.

  2. ์ œ๋ชฉ๊ณผ ๋‚ด์šฉ์„ ์ž‘์„ฑํ•œ๋‹ค.

  • ์ œ๋ชฉ์˜ ๊ธฐ๋ณธ๊ฐ’์€ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€์ด๋‹ค.
  1. ์˜ค๋ฅธ์ชฝ์˜ Reviewers(๊ฒ€ํ† ์ž)๋ฅผ ์„ ํƒํ•˜์—ฌ ๋‚˜์˜ค๋Š” ๋ฆฌ์ŠคํŠธ ๋ชฉ๋ก ์ค‘ ๊ฒ€ํ† ์ž๋ฅผ ์„ ํƒํ•œ๋‹ค. (๋ณต์ˆ˜ ์„ ํƒ ๊ฐ€๋Šฅ)

  2. ๋งˆ์ฐฌ๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ Assignees(๋‹ด๋‹น์ž)์™€ Labels(๋ผ๋ฒจ) -> ํ•ด๋‹น์‚ฌํ•ญ ์—†์œผ๋ฉด ์ƒˆ๋กœ ์ƒ์„ฑ, Projects(ํ”„๋กœ์ ํŠธ) -> The Stellar Project ์„ ํƒ, Milestone -> ํ•ด๋‹น์‚ฌํ•ญ ์žˆ์œผ๋ฉด ์„ ํƒ ์—†์œผ๋ฉด ํŒจ์Šค

  3. Create pull request๋ฅผ ๋ˆ„๋ฅธ๋‹ค.

์ •๋ฆฌ(๊ทธ๋ฆผ)

์ง€๊ธˆ๊นŒ์ง€ ํ•œ ์ž‘์—…์€ ๋‹ค์Œ ๊ทธ๋ฆผ์œผ๋กœ ์š”์•ฝํ•  ์ˆ˜ ์žˆ๋‹ค.

git-branch-09.png

  • 1๋ฒˆ New Branch from Selected...์—์„œ from์— ํ•ด๋‹นํ•˜๋Š” ๋ธŒ๋Ÿฐ์น˜๋Š” main์ด๋‹ค.
  • 2๋ฒˆ New Branch from Selected...์—์„œ from์— ํ•ด๋‹นํ•˜๋Š” ๋ธŒ๋Ÿฐ์น˜๋Š” wiki์ด๋‹ค.

์ฆ‰, ๋ธŒ๋Ÿฐ์น˜๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ๋งŒํผ์ด๋‚˜ ์ค‘์š”ํ•œ ๊ฒƒ์ด ์–ด๋–ค ๋ธŒ๋Ÿฐ์น˜์—์„œ ๋ถ„๊ธฐํ•˜์—ฌ ์ƒ์„ฑํ•  ๊ฒƒ์ด๋ƒ์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ํ•ญ์ƒ ์‹ ์ค‘์— ์‹ ์ค‘์„ ๊ธฐํ•ด์„œ from์— ํ•ด๋‹นํ•˜๋Š” ๋ธŒ๋Ÿฐ์น˜๋ฅผ ์ž˜ ์„ ํƒํ•˜์ž.

  • ๋˜ํ•œ, PR(Pull Request)์— ํ•ด๋‹นํ•˜๋Š” ์„ ์„ ์ ์„ ์œผ๋กœ ํ‘œ๊ธฐํ•œ ์ด์œ ๋Š” ์•„์ง Merge๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. PR์€ ํ•ด๋‹น Merge์— ๋Œ€ํ•ด ๋ชจ๋‘์˜ ๋™์˜๋ฅผ ์–ป๋Š” ์ž‘์—…์ด๋ผ ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.
  • ๋งŒ์•ฝ ๋ชจ๋‘์˜ ๋™์˜๋ฅผ ์–ป์—ˆ๋‹ค๋ฉด, Merge ๋‹ด๋‹น์ž๊ฐ€ ์ด๋ฅผ Mergeํ•˜๋ฉด ๋œ๋‹ค.
  • ๊ทธ๋ž˜์„œ PR์„ ๋‚ ๋ฆด ๋•Œ Reviewers(๊ฒ€ํ† ์ž)๋ฅผ ์„ ํƒํ•œ ๊ฒƒ์ด๋‹ค.
  • ๊ฒ€ํ† ์ž๋“ค์˜ ์˜๊ฒฌ์ด ๋ชจ๋‘ ํ•ฉ์น˜๋˜์—ˆ์„ ๋•Œ ๋‹ด๋‹น์ž๊ฐ€ ํ•ด๋‹น ๋ธŒ๋Ÿฐ์น˜๋ฅผ ๋ชฉ์  ๋ธŒ๋Ÿฐ์น˜์— ๋ณ‘ํ•ฉ์‹œํ‚ค๋Š” ๊ฒƒ์ด๋‹ค.

References

Ellun's Library