GitHub Tips ๐Ÿฏ

geekk
31 min readMay 30, 2021

--

GitHub์„ ๋‹จ์ˆœํžˆ git remote ์ €์žฅ์†Œ๋กœ๋งŒ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋ฉด GitHub ์ž์ฒด์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ๋“ค์„ ๋†“์น˜๊ณ  ์žˆ์„ ๊ฒƒ์ด๋‹ค. ํŒ€์— ์ƒ์‚ฐ์„ฑ ๊ตฌ๋ฃจ๊ฐ€ ํ•œ๋ช…์ฏค ์žˆ๋‹ค๋ฉด ์—ฌ๋Ÿฌ ํŒ๋“ค์„ ๊ณต์œ  ๋ฐ›๊ฑฐ๋‚˜ ์ด๋ฏธ ์ ์šฉ๋˜์–ด ์žˆ์„ํ…๋ฐ, ๋ณดํ†ต ์ด๋ ‡๊ฒŒ ์ง‘์ฐฉ(?)ํ•˜๋Š” ํŒ€์›์„ ๋ณด๊ธด ์–ด๋ ค์šธ ๊ฒƒ์ด๋‹ค. ๋˜ํ•œ ์ด๋Ÿฐ ๋ฏธ๋ฆฝ์ž ํŒ๋“ค์€ ํŒŒํŽธํ™” ๋˜์–ด ์žˆ์–ด ์ผ์ผํžˆ ์ฐพ์•„๋ณด๊ธฐ๋„ ๊ท€์ฐฎ๋‹ค.

์‚ฌ๋‚ด ๊ณต์œ ๋ฅผ ๊ณ„๊ธฐ๋กœ ํŒŒํŽธํ™”๋˜์–ด ์žˆ๋˜ ํŒ๋“ค์„ ๋ฐ”๋กœ ์ ์šฉํ•ด ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ํ•œ ๊ณณ์œผ๋กœ ๋ชจ์•„๋ดค๋‹ค. ํ˜„์žฌ ํŒ€์—์„œ GitHub์„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ํ•˜๋‚˜์”ฉ ์ ์šฉํ•ด๋ณด์ž. ๋ชธ์— ์ต๊ณ , ํŒ€์›๋“ค์ด ํ•จ๊ป˜ ์ดํ•ดํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋‹ค๋ณด๋ฉด ๋ถ„๋ช… ์ด์ „๋ณด๋‹ค ๋‚˜์€ ์—…๋ฌด ํ™˜๊ฒฝ์ด ๋  ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ•œ๋‹ค.

GitHub ๋‹จ์ถ•ํ‚ค

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

  • g c โ€” Code ํ™”๋ฉด์œผ๋กœ ์ด๋™
  • g i โ€” Issues ํ™”๋ฉด์œผ๋กœ ์ด๋™
  • g p โ€” Pull requests ํ™”๋ฉด์œผ๋กœ ์ด๋™
  • g w โ€” Wiki ํ™”๋ฉด์œผ๋กœ ์ด๋™
  • t โ€” ํŒŒ์ผ๋ช… ๊ฒ€์ƒ‰(Fuzzy file finder)
  • / โ€” ๊ฒ€์ƒ‰
  • cmd / โ€” (์ด์Šˆ/PR ๋ชฉ๋ก์—์„œ) ๋‚ด๋ถ€ ๊ฒ€์ƒ‰
  • ctrl ., ctrl 1 โ€” ์ €์žฅ๋œ ์ฝ”๋งจํŠธ ์‚ฌ์šฉํ•˜๊ธฐ
  • ? โ€” ํ˜„์žฌ ํ™”๋ฉด์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋‹จ์ถ•ํ‚ค ์„ค๋ช…

๐Ÿค” GitHub ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ชจ๋“  ์›น์‚ฌ์ดํŠธ์—์„œ ๊ณตํ†ต๋œ ๋‹จ์ถ•ํ‚ค๋ฅผ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋‚˜๋Š” ํฌ๋กฌ ๋ธŒ๋ผ์šฐ์ €์˜ Vimium ํ™•์žฅํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค. GitHub ๊ธฐ๋Šฅ์€ ์•„๋‹ˆ์ง€๋งŒ ์ต์ˆ™ํ•ด์ง€๋ฉด ์ƒ์‚ฐ์„ฑ์ด ๊ฝค ์ข‹์•„์ ธ์„œ ๋‚จ๊ธด๋‹ค.

https://dzone.com/articles/vimium-a-browser-for-hackers

๐Ÿค” ํฌ๋กฌ ๊ฒ€์ƒ‰์—”์ง„์„ ํ™œ์šฉํ•˜๋ฉด ์ข€ ๋” ๋น ๋ฅด๊ฒŒ GitHub ์ด์Šˆ/PR์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. ํฌ๋กฌ ๋ธŒ๋ผ์šฐ์ €์—์„œ chrome://settings/searchEngines ์— ์ ‘๊ทผํ•˜์—ฌ ๊ฒ€์ƒ‰ ์—”์ง„์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋œ๋‹ค. ํ˜„์žฌ ์šฐ๋ฆฌํŒ€์€ plan์ด๋ž€ repo๋ฅผ ์ค‘์ ์œผ๋กœ ์—…๋ฌด๋ฅผ ์ง„ํ–‰ํ•˜๋Š”๋ฐ, ์ด repo์˜ ๊ฒ€์ƒ‰ URL์„ ๊ฒ€์ƒ‰ ์—”์ง„์œผ๋กœ ์ถ”๊ฐ€ํ•˜์—ฌ GitHub ์ ‘๊ทผ > repo ์ ‘๊ทผ > ๊ฒ€์ƒ‰์ฐฝ ํด๋ฆญ์˜ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์–ด ๊ต‰์žฅํžˆ ์œ ์šฉํ•˜๋‹ค.

โžฅ Search engine: Plan
โžฅ Keyword: pl
โžฅ URL with %s in place of query: https://<github-url>/<org>/plan/issues?utf8=โœ“&q=is%3Aissue+is%3Aopen+%s

https://www.sunnymistry.dev/til/tag/chrome/

Markdown/Comment ๊ด€๋ จ

๊ธฐ๋ณธ์ ์ธ ๋งˆํฌ๋‹ค์šด ๋ฌธ๋ฒ•์€ ๋ชจ๋‘๊ฐ€ ์•Œํ…Œ๋‹ˆ ์„ค๋ช…ํ•˜์ง€ ์•Š์œผ๋ฉฐ, ๊ธฐ๋ณธ์ ์ธ ๊ฒƒ ์™ธ์— ๋‹ค์–‘ํ•œ ๋งˆํฌ๋‹ค์šด ์‚ฌ์šฉ๋ฒ•๊ณผ ์ฝ”๋งจํŠธ ๋‚จ๊ธธ ๋•Œ ์œ ์šฉํ•œ ๊ธฐ๋Šฅ๋“ค์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•œ๋‹ค.

Issue/PR ๋ณธ๋ฌธ์— โ€˜์ ‘๊ธฐ/ํŽผ์น˜๊ธฐโ€™ ์ถ”๊ฐ€ํ•˜๊ธฐ

๋ณด๊ณ ์„œ๋ฅผ ์ž˜ ์ž‘์„ฑํ•ด์•ผํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•˜๊ฒŒ ์ด์Šˆ/์ฝ”๋งจํŠธ/PR ๋ณธ๋ฌธ๋“ค๋„ ์ž˜ ์ž‘์„ฑํ•ด๋‘ฌ์•ผ ํ•œ๋‹ค. ๋ถ€๊ฐ€ ์„ค๋ช…์ด๋‚˜ ์ˆจ๊ฒจ๋‘˜ ํ•„์š”๊ฐ€ ์žˆ๋Š” ์†Œ์Šค์ฝ”๋“œ ๋“ฑ์„ ๋‚˜ํƒ€๋‚ผ ๋•Œ ์ ‘์„ ์ˆ˜ ์žˆ๋Š” ์ฝ˜ํ…์ธ (collapsible content)๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์•„๋ž˜์™€ ๊ฐ™์ด ์ž‘์„ฑํ•œ๋‹ค.

<details>
<summary>Details</summary>

```kt
println("Hello World")
```

</details>

โš ๏ธ Warning: <summary> ํƒœ๊ทธ ์ดํ›„์— ๊ฐœํ–‰์ด ์žˆ์–ด์•ผ ํ•จ.

์ ‘์€ ์ƒํƒœ(์™ผ์ชฝ) / ํŽผ์นœ ์ƒํƒœ(์˜ค๋ฅธ์ชฝ)

ํ‚ค๋ณด๋“œ ํƒœ๊ทธ ์‚ฌ์šฉํ•˜๊ธฐ

๋งˆํฌ๋‹ค์šด์— <kbd> ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ‚ค๋ณด๋“œ ๋ฒ„ํŠผ๊ณผ ๊ฐ™์€ UI๋ฅผ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

GitHub Protips: Tips, tricks, hacks, and secrets from Lee Reilly โ€” The GitHub Blog

Hex ์ƒ‰์ƒ ์ฝ”๋“œ ๋‚˜ํƒ€๋‚ด๊ธฐ

๋งˆํฌ๋‹ค์šด์— #C6E48B ๊ฐ™์€ hex code๋กœ ํ‘œํ˜„๋œ ์ƒ‰์ƒ์„ ์ฝ”๋“œ ๋ธ”๋Ÿญ์— ์ž‘์„ฑํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์ƒ‰์ƒ์ด ๊ฐ™์ด ํ‘œํ˜„๋œ๋‹ค.

GitHub Protips: Tips, tricks, hacks, and secrets from Lee Reilly โ€” The GitHub Blog

์ฝ”๋“œ ๋ฌธ๋ฒ• ํ•˜์ด๋ผ์ดํŒ… โ€” diff ๋ฌธ๋ฒ•

์ฝ”๋“œ ๋ธ”๋Ÿญ์„ ์ž‘์„ฑํ•  ๋•Œ ``` ๋‹ค์Œ์— ์–ธ์–ด ์‹๋ณ„์ž๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ํ•˜์ด๋ผ์ดํŒ…์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ถ”๊ฐ€์ ์œผ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์‹๋ณ„์ž ๋ง๊ณ , diff๋„ ์žˆ์œผ๋‹ˆ ํ•„์š”ํ•œ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์œผ๋‹ˆ ์‚ฌ์šฉํ•ด๋ณด์ž.

https://stackoverflow.com/a/40883538/3793078

์ฝ”๋“œ ์Šค๋‹ˆํŽซ ์ถ”๊ฐ€ํ•˜๊ธฐ

ํ˜„์žฌ ์ €์žฅ๋œ ์ฝ”๋“œ์˜ ์ผ๋ถ€๋ฅผ ๋‚จ๊ฒจ์•ผํ•  ๋•Œ ์ง์ ‘ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•˜์ง€ ์•Š๊ณ  ์•„๋ž˜์™€ ๊ฐ™์ด ์Šค๋‹ˆํŽซ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค. ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์€ ์—ฌ๊ธฐ๋ฅผ ์ฐธ๊ณ ํ•˜๊ธธ ๋ฐ”๋ž€๋‹ค.

Creating a permanent link to a code snippet โ€” GitHub Docs

์ฝ”๋งจํŠธ์— ๋‹ต๋ณ€ ๋‚จ๊ธฐ๊ธฐ

ํŠน์ • ์ฝ”๋งจํŠธ์— ๋‹ต๋ณ€์„ ๋‚จ๊ธธ ๋•Œ โ€˜Quote replyโ€™ ๋ฒ„ํŠผ์„ ์‚ฌ์šฉํ•˜๋ฉด ํ•ด๋‹น ์ฝ”๋งจํŠธ๋ฅผ ๋‚ด์šฉ์„ ์ž๋™์œผ๋กœ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ž‘์„ฑํ•˜๋ฉด ์–ด๋–ค ์ฝ”๋งจํŠธ์— ๋Œ€ํ•œ ๋‹ต๋ณ€์ธ์ง€ ํŒŒ์•…ํ•˜๊ธฐ ์‰ฌ์›Œ์ง„๋‹ค. โ€˜Quote replyโ€™ ๋ฒ„ํŠผ์€ ๋‹จ์ถ•ํ‚ค r๋กœ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ๋‹ค.

์ถ”๊ฐ€์ ์œผ๋กœ, ๋‹ต๋ณ€์„ ๋‚จ๊ธธ ํŠน์ • ์ฝ”๋งจํŠธ์˜ ๋‚ด์šฉ์„ ๋“œ๋ž˜๊ทธํ•œ ๋’ค โ€˜Quote replyโ€™๋ฅผ ํด๋ฆญํ•˜๋ฉด ๋“œ๋ž˜๊ทธํ•œ ๋ณธ๋ฌธ์˜ ๋‚ด์šฉ๋งŒ ์ธ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

Quote reply to a comment โ€” The GitHub Blog

Anchors ์ถ”๊ฐ€ํ•˜๊ธฐ

ํŠน์ • ์ฝ”๋งจํŠธ๋ฅผ ์ฐธ๊ณ  ๋งํฌ๋กœ ์ถ”๊ฐ€ํ•  ๋•Œ ์ฝ”๋งจํŠธ ์ƒ์„ฑ์ผ์„ ํด๋ฆญํ•˜์—ฌ ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿผ ํŠน์ • ์ฝ”๋งจํŠธ์˜ ํŠน์ • ๋ฌธ๊ตฌ/์œ„์น˜๋ฅผ ์ฐธ๊ณ  ๋งํฌ๋กœ ๋‚จ๊ธธ ๋• ์–ด๋–ป๊ฒŒ ํ• ๊นŒ? ๋ฐฉ๋ฒ•์€ ๊ฐ„๋‹จํ•˜๋‹ค. ๋งˆํฌ๋‹ค์šด์€ HTML ํƒœ๊ทธ๋ฅผ ์ง€์›ํ•˜๋‹ˆ ์ง์ ‘ ์•ต์ปค๋ฅผ ๋งŒ๋“ค์–ด์ค„ ์ˆ˜ ์žˆ๋‹ค.

์•„๋ž˜์™€ ๊ฐ™์ด <a name=""></a>ํƒœ๊ทธ๋ฅผ ์›ํ•˜๋Š” ์œ„์น˜์— ์ถ”๊ฐ€ํ•˜๊ณ , ํ•ด๋‹น ์•ต์ปค๋ฅผ # ์„ ํ†ตํ•ด ๋งํฌ๋ฅผ ๋งŒ๋“ค์–ด์ค€๋‹ค.

### <a name="toc"></a>๋ชฉ์ฐจ<a name="reference"></a>...์ฐธ๊ณ  ์ž๋ฃŒ๋Š” [์—ฌ๊ธฐ](#reference)๋ฅผ ํ™•์ธํ•˜๋ผ.
[๋ชฉ์ฐจ ๋ฐ”๋กœ๊ฐ€๊ธฐ](#toc)

Note, Warning ๋ธ”๋ฝ ์‚ฌ์šฉํ•˜๊ธฐ

Asciidoc์— ์žˆ๋˜ ๊ธฐ๋Šฅ์ด GitHub markdown์—๋„ ์ถ”๊ฐ€๋˜์—ˆ๋‹ค. ์ด์Šˆ, PR, discussions, ๋ฆด๋ฆฌ์ฆˆ ๋…ธํŠธ ๋“ฑ์— ์ ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๋ณด๋‹ค ๊ฐ€๋…์„ฑ ์žˆ๋Š” ๋ฌธ์„œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. (์ฐธ๊ณ  ๋…ผ์˜)

> **Note**
> This is a note

> **Warning**
> This is a warning

์ž์ฃผ ์“ฐ๋Š” ๋‹ต๋ณ€ ์ €์žฅํ•˜๊ธฐ

๋งˆํฌ๋‹ค์šด ์—๋””ํ„ฐ์˜ ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์„ ๋ณด๋ฉด ํ™”์‚ดํ‘œ ์•„์ด์ฝ˜์ด ํ•˜๋‚˜ ์žˆ๋Š”๋ฐ, ์ž์ฃผ ์“ฐ๋Š” ๋‹ต๋ณ€์„ ์ €์žฅํ•ด์„œ ๋ฐ”๋กœ ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค(๋ณดํ†ต LGTM๐Ÿ‘์ด ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜์ง€ ์•Š์„๊นŒ ์ƒ๊ฐํ•œ๋‹ค).

Using saved replies โ€” GitHub Docs

๐Ÿค” emoji ํ™œ์šฉํ•ด๋ณด์ž. ์ง์ ‘ ์ด๋ชจ์ง€๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ, GitHub ์ž์ฒด์ ์œผ๋กœ ํŠน์ • ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด์„œ๋„ ์ง€์›ํ•œ๋‹ค. (์˜ˆ๋ฅผ ๋“ค๋ฉด, ์ž๋™ํ™” ๋„๊ตฌ๋ฅผ ๋งŒ๋“ ๋‹ค๊ฑฐ๋‚˜ ์ž์ฃผ ์“ฐ๋Š” ๋‹ต๋ณ€์— ์ถ”๊ฐ€ํ•  ๋•Œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค)
โžฅ ref: ikatang/emoji-cheat-sheet

์ฝ”๋งจํŠธ ์ˆจ๊ธฐ๊ธฐ

GitHub์„ ํ˜‘์—… ๋„๊ตฌ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ์ด์Šˆ์—์„œ ๋Œ€๋ถ€๋ถ„ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์ด ์ด๋ค„์งˆ ๊ฒƒ์ด๋‹ค. ์ด ๋•Œ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์ด ์˜ค๋žซ๋™์•ˆ ์ด์–ด์ง€๋ฉด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ฝ”๋งจํŠธ๊ฐ€ ๋งŽ์•„์ง„๋‹ค. ์ด๋Ÿฌํ•œ ์ฝ”๋งจํŠธ๋“ค์€ ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ๋„ ๋งŽ๊ณ , ๋” ์ด์ƒ ๋ถˆํ•„์š”ํ•˜๊ฑฐ๋‚˜ ์ค‘๋ณต๋œ ์ฝ”๋งจํŠธ๋„ ๋งŽ์„ ๊ฒƒ์ด๋‹ค. ์ด๊ฒƒ๋“ค์„ ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•˜๋ฉด(ํŽผ์ณ๋‘๋ฉด) ํ•ต์‹ฌ ๋‚ด์šฉ ํ˜น์€ ์ฝ”๋ฉ˜ํŠธ๊ฐ€ ์ž˜ ์•ˆ๋ณด์ด๊ฒŒ ๋œ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด GitHub์—์„œ๋Š” ์ฝ”๋งจํŠธ ์ˆจ๊น€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

Hiding a comment โ€” GitHub Docs

์ž‘์—… ๋‹น์‹œ์—๋Š” ๋ฐ”๋กœ ์Šคํฌ๋กค์„ ๋‚ด๋ฆฐ๋‹ค๋˜๊ฐ€ ๋ด์•ผ ํ•  ์ฝ”๋งจํŠธ๋ฅผ ์•Œ๊ณ  ์žˆ์œผ๋‹ˆ ์ƒ๊ด€ ์—†๊ฒ ์ง€๋งŒ, ํ•ญ์ƒ ๋ฌธ์ œ๋Š” ์‹œ๊ฐ„์ด ์ง€๋‚œ ๋’ค์— ๋ฐœ์ƒํ•œ๋‹ค. ๋‚˜์ค‘์— ํ•ด๋‹น ์ž‘์—…๊ฑด ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ํŒŒ์•…ํ•˜๊ณ ์ž ํ•  ๋•Œ ํ•ต์‹ฌ ์ฝ”๋งจํŠธ๋งŒ ๋ณด์ธ๋‹ค๋ฉด ๋งŽ์€ ์‹œ๊ฐ„์„ ์•„๋‚„ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

์ฝ”๋งจํŠธ ๋ณ€๊ฒฝ ์ด๋ ฅ ๋ณด๊ธฐ

GitHub์€ ํ˜‘์—… ๋„๊ตฌ์ด๋‹ค. (๋ฒ„์ „ ๊ด€๋ฆฌ ํ•˜๋Š”) Git์ด ์•„๋‹ˆ๋ฏ€๋กœ ํ˜‘์—…์„ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ณ  ์šฐ๋ฆฌ๋Š” ์ด๋ฅผ ํ™œ์šฉํ•ด์•ผ ํ•œ๋‹ค. GitHub์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์ฝ”๋งจํŠธ์ผ ๊ฒƒ์ด๋‹ค. ์ฝ”๋งจํŠธ๋Š” ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•˜๊ณ  ๋ณ€๊ฒฝ ์ด๋ ฅ๋„ ๊ด€๋ฆฌํ•ด์ฃผ๋ฏ€๋กœ ์ฝ”๋งจํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋Š”๋ฐ ๋„ˆ๋ฌด ๋ถ€๋‹ด ๊ฐ–์ง€ ๋ง๊ณ , ๋ฆฌํŒฉํ† ๋ง ํ•˜๋“ฏ์ด ๋‚ด์šฉ๋„ ๊ฐœ์„ ํ•ด๋‚˜๊ฐ€์ž.

Viewing a commentโ€™s edit history details โ€” GitHub Docs

๋Œ€ํ™” ์ด๋ ฅ ์ž ๊ทธ๊ธฐ

์—…๋ฌด๋ฅผ ํ•˜๋‹ค๋ณด๋ฉด ์ด์Šˆ๋‚˜ PR ๋‚ด์—์„œ ์–ด๋Š ์ •๋„ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์ด ์ด๋ค„์ง€๊ณ  ํ•ด๊ฒฐ๋œ ์ด์Šˆ๋“ค์ด ๋งŽ์•„์งˆ ๊ฒƒ์ด๋‹ค. GitHub์—์„œ๋Š” ์ด์Šˆ์˜ ๋Œ€ํ™” ์ด๋ ฅ์„ ์ž ๊ทธ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. (๋ฌผ๋ก  ๊ทธ๋Ÿฐ ์ผ์€ ์—†๊ฒŸ์ง€๋งŒ) ์ด๋ฅผ ํ†ตํ•ด ๋‚˜์ค‘์— ์ด์Šˆ๋ฅผ ์ฐพ์•„๋ดค์„ ๋•Œ ์ด์Šˆ๊ฐ€ ์กฐ์ž‘๋˜๊ฑฐ๋‚˜ ์ฝ”๋งจํŠธ๊ฐ€ ์‚ญ์ œ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•œ๋‹ค.

Locking conversations โ€” GitHub Docs

Issue/Pull Request ๊ด€๋ จ

์ด์Šˆ์™€ PR์— ๊ด€๋ จํ•ด์„œ ๊ณตํ†ต๋œ ๊ธฐ๋Šฅ๋“ค์— ๋Œ€ํ•ด ์„ค๋ช…ํ•œ๋‹ค.

์ด์Šˆ ๋งค๋‹ˆ์ง• โ€” Assignee, Participant

์—…๋ฌด๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ ํ•ด๋‹น ์ด์Šˆ์— ๋‹ด๋‹น์ž๋งŒ assignee๋กœ ์ง€์ •ํ•˜์ž. ๊ด€์Šต์ฒ˜๋Ÿผ ๋ชจ๋“  ํŒ€์›์„ ์ง€์ •ํ•œ๋‹ค๋ฉด ํ•ด๋‹น ๊ธฐ๋Šฅ์€ ํ•˜๋Š๋‹ˆ๋งŒ ๋ชปํ•œ ์„ค์ •์ด ๋  ๊ฒƒ ์ด๋‹ค. (๋‹ด๋‹น์‹œ ์•Œ๋žŒ ๊ธฐ๋Šฅ ํ˜น์€ ๊ฐœ์ธ ์—…๋ฌด ํ•„ํ„ฐ๋ง ๋ถˆ๊ฐ€)

Assigning an individual issue or pull request โ€” GitHub Docs

๋‹ด๋‹น์ž๊ฐ€ ์•„๋‹ˆ์ง€๋งŒ ํ•ด๋‹น ์ด์Šˆ๋ฅผ ์ถ”์ ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด Subscribe ๋ฅผ ํ†ตํ•ด Notification์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. ๋ฐ˜๋Œ€๋กœ ํ•ด๋‹น ์ด์Šˆ์— ๋Œ€ํ•œ ์ด๋ฒคํŠธ๋ฅผ ์•ˆ๋ฐ›๊ณ  ์‹ถ๋‹ค๋ฉด Unsubscribe ํ•ด๋‘๋ฉด ๋œ๋‹ค.

๋˜ํ•œ, ํ•ด๋‹น ์ด์Šˆ์— ์ฝ”๋งจํŠธ๋ฅผ ๋‚จ๊ธฐ๋ฉด ์ž๋™์œผ๋กœ Participants์— ์ถ”๊ฐ€๋˜๋ฏ€๋กœ ๊ด€๋ จ์ž ํŒŒ์•…์ด ์šฉ์ดํ•˜๋‹ค.

PR/์ด์Šˆ ์—ฐ๊ฒฐํ•˜๊ธฐ

GitHub์—์„œ๋Š” (์‹ค์ œ ์ž‘์—…์„ ๋‚˜ํƒ€๋‚ด๋Š”) PR๊ณผ (์ž‘์—…์˜ ์‹œ์ž‘์„ ๋‚˜ํƒ€๋‚ด๋Š”) ์ด์Šˆ๋ฅผ ์—ฐ๊ฒฐํ•ด์ค€๋‹ค. ์ด๋ ‡๊ฒŒ ์—ฐ๊ฒฐํ•ด์คŒ์œผ๋กœ์จ ์‹œ๊ฐ„์ด ์ง€๋‚œ ํ›„์—๋„ ํžˆ์Šคํ† ๋ฆฌ ํŒŒ์•…์ด ์‰ฌ์›Œ์ง€๊ณ  ์ง๊ด€์ ์ธ UI/UX์„ ์ œ๊ณตํ•˜๋ฏ€๋กœ ์ด์Šˆ์™€ PR์— ์ค‘๋ณต์œผ๋กœ ์ž‘์—… ๋‚ด์šฉ์„ ๊ตฌ๊ตฌ์ ˆ์ ˆ ์„ค๋ช…ํ•  ํ•„์š”๊ฐ€ ์—†์–ด์ง„๋‹ค.

์ด์Šˆ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” 2๊ฐ€์ง€๊ฐ€ ์กด์žฌํ•œ๋‹ค. ์ฒซ๋ฒˆ์งธ๋Š” URL ๋˜๋Š” ๋ ˆํผ๋Ÿฐ์Šค๋ฅผ ํ†ตํ•ด ์ด์Šˆ ํƒ€์ž„๋ผ์ธ์— ์—ฐ๊ฒฐ๋จ์„ ํ‘œ์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ๋‹จ์ˆœํžˆ ์ด์Šˆ/PR ๋ณธ๋ฌธ์— ์ด์Šˆ/PR ๋งํฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋œ๋‹ค. ๋˜ํ•œ GitHub์˜ ๋‚ด๋ถ€ URL(Raw reference)์ผ ๊ฒฝ์šฐ ์ž๋™์œผ๋กœ Short link๋กœ ๋ณ€ํ™˜ํ•ด์ค€๋‹ค. URL ์ด์™ธ์— ๋ณ„๋„ prefix(#)๋ฅผ ํ†ตํ•ด์„œ๋„ ์—ฐ๊ฒฐ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

Autolinked references and URLs โ€” GitHub Docs

๋‘๋ฒˆ์งธ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ์‚ฌ์ด๋“œ๋ฐ”์— ์žˆ๋Š” โ€˜Linked issuesโ€™ ๋ฅผ ํ†ตํ•ด ์ง์ ‘ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์ด ๋ฐฉ๋ฒ•์œผ๋กœ ์—ฐ๊ฒฐ์‹œ ํƒ€์ž„๋ผ์ธ ์™ธ์—๋„ ์‚ฌ์ด๋“œ๋ฐ”, ์ด์Šˆ/PR ๋ชฉ๋ก์— ์—ฐ๊ฒฐ๋จ์„ ๋‚˜ํƒ€๋‚ด๋ฏ€๋กœ ์ด์ „ ๋ฐฉ์‹๋ณด๋‹ค ์ง๊ด€์ ์ธ UI/UX๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

Linking a pull request to an issue โ€” GitHub Docs
์ด์Šˆ ๋ฆฌ์ŠคํŠธ๋‚ด์— ์—ฐ๊ฒฐ๋œ PR ๋งํฌ ํ‘œ์‹œ

๐Ÿค” ์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€์—๋„ ๊ด€๋ จ ์ด์Šˆ/PR ๋ฒˆํ˜ธ ํ˜น์€ commit hash๋ฅผ ๋‚จ๊ฒจ๋‘์ž. ์ด์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋“ค์€ ๋Œ€๋ถ€๋ถ„์˜ ํˆด์—์„œ ์ž๋™์œผ๋กœ ๋งํฌ๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๋ฏ€๋กœ ์œ ์ง€๋ณด์ˆ˜ ์ธก๋ฉด์—์„œ ๋„์›€์„ ์ค€๋‹ค. ์ปค๋ฐ‹ํ•  ๋•Œ ์•ฝ๊ฐ„์˜ ์‹œ๊ฐ„์„ ํ• ์• ํ•ด๋ณด์ž. ์ด๊ฒƒ์ด ๋‚˜์ค‘์— ํžˆ์Šคํ† ๋ฆฌ ๋’ค์ง€๋Š”๋ฐ ๋งŽ์€ ์‹œ๊ฐ„ ๋‚ญ๋น„๋ฅผ ์ค„์—ฌ์ค„ ๊ฒƒ์ด๋‹ค. (๋ณธ์ธ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํŒ€์› ๋ชจ๋‘)

https://www.jetbrains.com/help/idea/investigate-changes.html

๐Ÿค” ZenHub์„ ์‚ฌ์šฉ์ค‘์ด๋ผ๋ฉด PR์— ์ƒ์„ฑ๋˜๋Š” โ€˜Connect with an issueโ€™๋ฅผ ํ†ตํ•ด์„œ๋„ ์—ฐ๊ฒฐํ•ด์ฃผ์ž. ์—…๋ฌด ๊ด€๋ฆฌํ•˜๋Š”๋ฐ ๋ถ„๋ช… ๋„์›€์ด ๋  ๊ฒƒ ์ด๋‹ค.

https://blog.zenhub.com/github-issue-pull-request-linking/

PR์„ ํ†ตํ•ด ์ด์Šˆ ๋‹ซ๊ธฐ

PR์— ํŠน์ • ํ‚ค์›Œ๋“œ์™€ ํ•จ๊ป˜ Raw reference๋ฅผ ์ ์œผ๋ฉด, PR๊ณผ ์ด์Šˆ๊ฐ€ ์—ฐ๊ฒฐ๋จ๊ณผ ๋™์‹œ์— PR์ด ๋‹ซํž ๊ฒฝ์šฐ(= ์ž‘์—…์ด ์™„๋ฃŒ๋œ ๊ฒฝ์šฐ) ํ•ด๋‹น ์ด์Šˆ๊ฐ€ ์ž๋™์œผ๋กœ Close ๋œ๋‹ค. ๋‹จ์ˆœํžˆ Raw reference๋งŒ ์ ์–ด์„œ ์ด์Šˆ๋ฅผ ์—ฐ๊ฒฐํ•  ๊ฒฝ์šฐ ํƒ€์ž„๋ผ์ธ์—๋งŒ ์ถ”๊ฐ€๋˜๋Š”๋ฐ, ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด โ€˜Linked issuesโ€™์— ์ž๋™์œผ๋กœ ๋“ฑ๋ก๋˜๋ฏ€๋กœ ํ™œ์šฉ๋„๊ฐ€ ๋†’๋‹ค.

Linking a pull request to an issue using a keyword โ€” GitHub Docs

์ด์Šˆ/PR ํ…œํ”Œ๋ฆฟ ๋งŒ๋“ค๊ธฐ

PR ์ƒ์„ฑ์‹œ ํ…œํ”Œ๋ฆฟ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค. .github/PULL_REQUEST_TEMPLATE.md ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜์—ฌ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, <!-- -->์œผ๋กœ ์ฃผ์„๋„ ๋‚จ๊ธธ ์ˆ˜ ์žˆ์œผ๋‹ˆ PR ๋ณธ๋ฌธ ์ž‘์„ฑ ๊ฐ€์ด๋“œ๋ฅผ ๋‚จ๊ธธ ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ…œํ”Œ๋ฆฟ ๊ธฐ๋Šฅ์€ PR ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ด์Šˆ ํ…œํ”Œ๋ฆฟ๋„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ์•„๋ž˜์— ์˜ˆ์‹œ ํ…œํ”Œ๋ฆฟ ์ฝ”๋“œ๋„ ์ถ”๊ฐ€ํ•ด๋‘์—ˆ์œผ๋‹ˆ ํ™œ์šฉํ•ด๋ณด์ž.

Issue and Pull Request templates โ€” The GitHub Blog
<!-- Linked issues -->
org/repo#
## Summary## Test Plan
<!-- ํ…Œ์ŠคํŠธ ๋ฐฉ๋ฒ• ์„ค๋ช… ํ˜น์€ TC๋ฅผ ์ถ”๊ฐ€ํ–ˆ๋Š”์ง€-->
## Related services
<!-- ํƒ€ ์„œ๋น„์Šค์™€ ์˜์กด์„ฑ์ด ์žˆ์„ ๊ฒฝ์šฐ ์„ค๋ช… -->
N/A
## References
<!-- ๊ด€๋ จ ์ž๋ฃŒ๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ์ฒจ๋ถ€ ๋ฐ ๋งํฌ ์ถ”๊ฐ€ -->

GitHub์—์„œ ์˜จ ๋ฉ”์ผ์— ๋‹ต์žฅ์„ ํ†ตํ•ด ์ฝ”๋งจํŠธ ๋‚จ๊ธฐ๊ธฐ

GitHub์œผ๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ๋ฉ”์ผ์— ๋‹ต๋ณ€์„ ํ†ตํ•ด ์ฝ”๋งจํŠธ๋ฅผ ๋‚จ๊ธธ ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ํ™œ์šฉํ•œ๋‹ค๋ฉด, CI ์„œ๋ฒ„์—์„œ ํŠน์ • ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด ํŠธ๋ฆฌ๊ฑฐ๋˜๋„๋ก ์„ค์ •๋˜์–ด ์žˆ์„ ๋•Œ ๋ฉ”์ผ ๋‹ต๋ณ€์„ ํ†ตํ•ด ๋ฐ”๋กœ ํ•ด๋‹น ์ž‘์—…์„ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

Reply to Comments from Email โ€” The GitHub Blog

๋ผ๋ฒจ ๋ถ™ํžˆ๊ธฐ

TODO

Managing labels โ€” GitHub Docs

Pull Request ๊ด€๋ จ

PR๊ณผ ์ฝ”๋“œ ๋ฆฌ๋ทฐ์— ๊ด€๋ จ๋œ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•œ๋‹ค.

diff ๋ณผ ๋•Œ whitespace ์ œ์™ธํ•˜๊ธฐ

PR ๋‚ด diff๋ฅผ ๋ณผ ๋•Œ ํฌ๋งทํ„ฐ๊ฐ€ ์ ์šฉ๋˜์—ˆ๊ฑฐ๋‚˜ ๊ณต๋ฐฑ ๋ณ€๊ฒฝ์ด ๋งŽ์„ ๊ฒฝ์šฐ ์ฝ”๋“œ ๋ฆฌ๋ทฐํ•ด์•ผ ํ•  ํ•ต์‹ฌ ์ฝ”๋“œ๊ฐ€ ์ž˜ ๋ณด์ด์ง€ ์•Š๋Š”๋‹ค. ์ด ๋•Œ ๋‹ค์Œ ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ whitespace ๋ณ€๊ฒฝ์„ ์ œ์™ธํ•  ์ˆ˜ ์žˆ๋‹ค.

Ignore Whitespace โ€” tiimgreen/github-cheat-sheet

Merge ๋œ ๋ธŒ๋žœ์น˜ ์ž๋™ ์‚ญ์ œํ•˜๊ธฐ

PR์„ ํ†ตํ•ด ์ž‘์—…์ด ์™„๋ฃŒ๋˜์—ˆ์„ ๋•Œ ๋ธŒ๋žœ์น˜ ์‚ญ์ œ๋ฅผ ๊นœ๋นกํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด GitHub์€ ๋จธ์ง€๋œ ๋ธŒ๋žœ์น˜๋ฅผ ์ž๋™ ์ œ๊ฑฐํ•ด์ค€๋‹ค. repo์˜ โ€˜Settingsโ€™์—์„œ โ€˜Merge buttonโ€™ ์„น์…˜ ์•„๋ž˜์—์„œ ํ•ด๋‹น ์„ค์ •์„ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.

Managing the automatic deletion of branches โ€” GitHub Docs

์ œ๊ฑฐ๋œ ๋ธŒ๋žœ์น˜ ๋ณต๊ตฌํ•˜๊ธฐ(Restore)

GitHub์—” PR์—์„œ ์ œ๊ฑฐ๋œ ๋ธŒ๋žœ์น˜๋ฅผ ๋ณต๊ตฌํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค. ์•„๋งˆ ์ž๋™ ์ œ๊ฑฐํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์œผ๋‹ˆ ๋ณต๊ตฌํ•˜๋Š” ๊ธฐ๋Šฅ๋„ ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ธ๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ ๋จธ์ง€๋œ ๋ธŒ๋žœ์น˜ ์ž๋™ ์ œ๊ฑฐ์— ์˜ˆ๋ฏผํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.

Restoring a deleted branch โ€” GitHub Docs

๐Ÿค” ๋จธ์ง€๋œ ๋ธŒ๋žœ์น˜๋ฅผ ๋ณ„๋‹ค๋ฅธ ์ด์œ  ์—†์ด ์œ ์ง€ํ•  ํ•„์š”๋Š” ์—†๋‹ค. Git ๊ฐœ๋…์—์„œ Remote์˜ ์—ญํ• ์„ ์ƒ๊ฐํ•ด๋ณด์ž. Remote๋Š” ํ˜‘์—… ๊ตฌ์กฐ์—์„œ ์ž‘์—…์„ ๊ณต์œ ํ•˜๋Š” ๊ณต๊ฐ„์ด๋‹ค. ์ฆ‰, ์ž‘์—…์ด ์™„๋ฃŒ๋œ ์ดํ›„์— ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด์„œ ๋ธŒ๋žœ์น˜๋ฅผ ๋‚จ๊ฒจ๋‘๋Š” ๊ณณ์ด ์•„๋‹ˆ๋‹ค. ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด์„œ๋Š” git์˜ tag๋‚˜ GitHub์˜ release๋ฅผ ํ™œ์šฉํ•ด์•ผ ํ•œ๋‹ค.
๋˜ํ•œ, ์ž‘์—… ์ด๋ ฅ์— ์ปค๋ฐ‹์„ ๋‚จ๊ธฐ๋Š” ๋ฐฉ์‹์— ๋Œ€ํ•ด์„œ๋Š” ๋จธ์ง€ ๋ฐฉ์‹์„ ์ปจํŠธ๋กค ํ•  ์ค„ ์•Œ์•„์•ผ ํ•œ๋‹ค. ๋ธŒ๋žœ์น˜์˜ ์ปค๋ฐ‹์„ ์œ ์ง€ํ•˜๋ ค๋ฉด fast-forward merge ํ˜น์€ 3-way merge๋ฅผ ํ•ด์•ผ ํ•˜๊ณ , ์ƒํ™ฉ์— ๋”ฐ๋ผ squash merge๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค. (๋‹จ์ˆœํžˆ ๋ธŒ๋žœ์น˜๋ฅผ ๋‚จ๊ธฐ์ž๋Š” ๊ฒƒ ๋ณด๋‹ค ๋ธŒ๋žœ์น˜์—์„œ ํ•„์š”์— ๋งž๊ฒŒ ์ปค๋ฐ‹์„ ํ•˜๊ณ  ๋ฉ”์ธ ๋ธŒ๋žœ์น˜์—๋Š” ์–ด๋–ป๊ฒŒ ์ปค๋ฐ‹ํ• ์ง€ ์ƒ๊ฐํ•  ์ค„ ์•Œ์•„์•ผ ํ•œ๋‹ค๋Š” ๋ง)
๊ฒฝํ—˜์— ๋”ฐ๋ฅด๋ฉด ๋ธŒ๋žœ์น˜๋ฅผ ๋‚จ๊ฒจ๋‘๋Š” ๊ฒƒ์€ GitHub ์ด์™ธ์˜ 3rd-party ์‹œ์Šคํ…œ์—์„œ ๋ธŒ๋žœ์น˜ ๊ฒ€์ƒ‰์‹œ ๋ถˆํ•„์š”ํ•œ ๋ธŒ๋žœ์น˜(์‹ค์ œ ์ž‘์—…์ค‘์ธ ๋ธŒ๋žœ์น˜)๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ์‹œ์Šคํ…œ์—์„œ ๋ถˆํ•„์š”ํ•œ ๋ธŒ๋žœ์น˜ ์ •๋ณด๋“ค์€ ๋…ธ์ด์ฆˆ๊ฐ€ ๋œ๋‹ค.
โžฅ ref: Git Merge โ€” Atlassian Git Tutorial
โžฅ ref: Whatโ€™s the difference between tag and release? โ€” stackoverflow

๋จธ์ง€๋œ ๋ธŒ๋žœ์น˜ ๋กค๋ฐฑํ•˜๊ธฐ(Revert)

๋จธ์ง€๋œ PR์— ๋ฒ„๊ทธ๊ฐ€ ์žˆ์–ด์„œ ํŒจ์น˜๋ณด๋‹จ ๋กค๋ฐฑ์ด ํ•„์š”ํ•  ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ์ด ๋•Œ GitHub์˜ PR Revert ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜๋ฉด ์‰ฝ๊ฒŒ ๋กค๋ฐฑ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๊ฒƒ์€ Git์˜ ๊ธฐ๋Šฅ์€ ์•„๋‹ˆ๋ฉฐ GitHub์—์„œ ํ•ด๋‹น ์ž‘์—… ๊ฑด์„ ์—ญ์œผ๋กœ commitํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. ์ด ๊ธฐ๋Šฅ์€ ๊ฐ€๋” ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜์™€ ์ถฉ๋Œ์‹œ ๊ฝค๋‚˜ ๋ณต์žกํ•œ ์ƒํ™ฉ์„ ๋งŒ๋“œ๋ฏ€๋กœ commit์˜ ํžˆ์Šคํ† ๋ฆฌ ์ƒํƒœ๋ฅผ ์ธ์ง€ํ•˜๊ณ  ์‚ฌ์šฉํ•˜๊ธธ ๋ฐ”๋ž€๋‹ค.

Reverting a pull request โ€” GitHub Docs

PR ๋จธ์ง€ ๋ฐฉ์‹ ์ œํ•œํ•˜๊ธฐ

GitHub์€ PR์˜ Merge ๋ฐฉ๋ฒ•์„ ๊ฐ•์ œํ•˜๊ฑฐ๋‚˜ ์ผ๋ถ€ ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์„ค์ •์„ ์ œ๊ณตํ•œ๋‹ค. Git์„ ์ฒ˜์Œ ์ ‘ํ•œ ์‚ฌ๋žŒ์ด๋ฉด ์•„๋งˆ 3-way merge ํ˜น์€ fast-forward merge๋ฅผ ์ฃผ๋กœ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋‹ค. ์ด๋Ÿฌ๋‹ค ์‹œ๊ฐ„์ด ๊ฐˆ์ˆ˜๋ก ๊ธฐํŒ ๊ฐ™์•„ ๋ณด์ด๋Š” ๋ธŒ๋žœ์น˜/์ปค๋ฐ‹ ๋กœ๊ทธ๋ฅผ ๋ณด๋ฉด ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜ ๋จธ์ง€ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ Git ์ˆ™๋ จ๋„๊ฐ€ ๋ถ€์กฑํ•  ๋•Œ rebase๋ฅผ ๋งˆ๊ตฌ ์‚ฌ์šฉํ•˜๋‹ค๋ณด๋ฉด ๋ธŒ๋žœ์น˜๊ฐ€ ๊ผฌ์—ฌ ์ง„์งœ ํ—ฌ์„ ๋งž์ดํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

Configuring pull request merges โ€” GitHub Docs

Draft PR ์ƒ์„ฑํ•˜๊ธฐ

์–ด๋–ค PR์ด ์ž‘์—…์ค‘์ธ์ง€, ๋ฒ„๋ ค์กŒ๋Š”์ง€ ๋‹จ๋ฒˆ์— ํ™•์ธํ•  ์ˆ˜ ์žˆ์„๊นŒ? ์ƒ์„ฑ๋œ์ง€ ์˜ค๋žœ ์‹œ๊ฐ„์ด ์ง€๋‚œ ํ›„์— ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ์ž์—๊ฒŒ ๋ฌผ์–ด๋ณด๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๊ณ , WIP ๋ผ๋ฒจ๋ง์„ ํ™œ์šฉํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ์•„์˜ˆ Draft PR๋กœ ์ƒ์„ฑํ•˜์—ฌ ์ž‘์—…์ค‘์ธ (ํ˜น์€ ์ž„์‹œ) PR์ด๋ผ๋Š” ๊ฒƒ์„ ๋‹จ๋ฒˆ์— ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ์ด๋ ‡๊ฒŒ GitHub ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜๋ฉด ์ง๊ด€์ ์ธ UI๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๋น„์šฉ์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

Introducing draft pull requests โ€” The GitHub Blog

์ผ๋ฐ˜ PR๋กœ ์ƒ์„ฑํ–ˆ๋‹ค๊ฐ€ ๋‹ค์‹œ Draft๋กœ ๋˜๋Œ๋ฆด ์ˆ˜๋„ ์žˆ์œผ๋‹ˆ ๋ณ€๊ฒฝ์— ๋Œ€ํ•ด์„œ ๊ฑฑ์ •ํ•  ํ•„์š” ์—†๋‹ค. (GitHub Enterprise 2.21.0 ๋ถ€ํ„ฐ ์ ์šฉ)

Converting a pull request to a draft โ€” GitHub Docs

์ฝ”๋“œ ๋ฆฌ๋ทฐ์—์„œ ์ฝ”๋“œ ์ œ์•ˆํ•˜๊ธฐ

์ด์ „์— diff ์ฝ”๋“œ ๋ธ”๋Ÿญ ํ•˜์ด๋ผ์ดํŒ…์„ ์„ค๋ช…ํ•˜์˜€๋‹ค. ์ฝ”๋“œ ๋ฆฌ๋ทฐ์—” diff UI์™€ ๋น„์Šทํ•˜์ง€๋งŒ ์‹ค์ œ ์ฝ”๋“œ์— ๋Œ€ํ•ด์„œ ์ œ์•ˆํ•  ์ˆ˜ ์žˆ๋Š” suggestion ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค. ๋‹จ์ˆœ ํ•˜์ด๋ผ์ดํŒ… ๊ธฐ๋Šฅ์ธ diff ์™€ ๋‹ค๋ฅด๊ฒŒ ์ฝ”๋“œ ๋ฆฌ๋ทฐ์— ์ค‘์ ์„ ๋‘์—ˆ๊ณ , ๋ฐ”๋กœ ์ฝ”๋“œ๋กœ ์ ์šฉํ•  ์ˆ˜๋„ ์žˆ๊ฒŒ ํ•œ๋‹ค.

Applying suggested changes โ€” GitHub Docs

์—ฌ๋Ÿฌ ์ค„์— ์ฝ”๋“œ ๋ฆฌ๋ทฐ ๋‚จ๊ธฐ๊ธฐ

์ฝ”๋“œ ๋ฆฌ๋ทฐ์‹œ ๋ฆฌ๋ทฐ๋ฅผ ๋‚จ๊ธธ ์ฝ”๋“œ ๋ผ์ธ์„ ๋“œ๋ž˜๊ทธ ํ˜น์€ ๋ผ์ธ ๋„˜๋ฒ„ ์„ ํƒ ํ›„ Shift ๋ˆ„๋ฅธ์ฑ„ ๋‹ค๋ฅธ ๋ผ์ธ ๋„˜๋ฒ„๋ฅผ ์„ ํƒํ•˜๋ฉด ์—ฌ๋Ÿฌ ์ฝ”๋“œ ๋ผ์ธ์— ๋ฆฌ๋ทฐ๋ฅผ ๋‚จ๊ธธ ์ˆ˜ ์žˆ๋‹ค.
(GitHub Enterprise 2.21 ๋ถ€ํ„ฐ ์ ์šฉ)

Multi-line code suggestions general availability โ€” The GitHub Blog

์ฝ”๋“œ ๋ฆฌ๋ทฐ์‹œ ํŒŒ์ผ๋งˆ๋‹ค ๋ฆฌ๋ทฐ ์ฒดํฌํ•ด๋‘๊ธฐ

์ฝ”๋“œ ๋ฆฌ๋ทฐ์‹œ ํ™•์ธํ•œ ํŒŒ์ผ์— ๋Œ€ํ•ด ์ฒดํฌํ•ด๋‘˜ ์ˆ˜ ์žˆ๋‹ค(Viewed). ์ด๋ฅผ ํ†ตํ•ด PR์„ ํ‹ˆํ‹ˆํžˆ ๋ฆฌ๋ทฐํ•  ์ˆ˜๋„ ์žˆ๊ณ , ํ•ด๋‹น PR์— ๋ณ€๊ฒฝ์ด ์žˆ์„ ๊ฒฝ์šฐ ๋ณ€๊ฒฝ๋œ ํŒŒ์ผ์— ๋Œ€ํ•ด์„œ๋งŒ ์ฒดํฌ ํ•ด์ œ ์ƒํƒœ๋กœ ๋ฐ”๋€Œ๋‹ˆ ๋ณด๋‹ค ๋น ๋ฅด๊ณ  ํŽธํ•˜๊ฒŒ ๋ฆฌ๋ทฐํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ์ฐธ๊ณ ๋กœ ์ฒดํฌ๋ฐ•์Šค ์ƒํƒœ๋Š” ํŽ˜์ด์ง€๋ฅผ ๋– ๋‚˜๋„ ์œ ์ง€๋œ๋‹ค.

Mark files as viewed โ€” The GitHub Blog

๋ฆฌ๋ทฐ ํ•ด๊ฒฐ ์ฒ˜๋ฆฌํ•˜๊ธฐ

๋ฆฌ๋ทฐ ๋ฐ›์€ ๋‚ด์šฉ์— ๋Œ€ํ•ด์„œ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๋”๋ผ๋„ PR ๋‚ด Conversation ํƒญ์—์„œ๋Š” ๊ทธ๋Œ€๋กœ ๋ณด์—ฌ์ง„๋‹ค. ์ด๋ฏธ ๋ฆฌ๋ทฐ ํ™•์ธ ๋ฐ ๋ฐ˜์˜์ด ๋˜์—ˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋ฆฌ๋ทฐ ๋‚ด์šฉ์„ ๋‚จ๊ฒจ๋‘๋ฉด ํ•ด๋‹น PR์„ ๋ณผ ๋•Œ ๊ณ„์† ํŽผ์ณ์ง„ ์ƒํƒœ๋กœ ๋ณด์—ฌ์ง€๊ฒŒ ๋œ๋‹ค. ๋‚˜์ค‘์— ๋ฐ˜์˜๋˜์—ˆ๋Š”์ง€ ๋‹ค๋ฅธ ์˜๊ฒฌ์ด ์žˆ์–ด์„œ ์œ ์ง€ํ–ˆ๋Š”์ง€ ์ฝ”๋งจํŠธ๋ฅผ ํ•˜๋‚˜ํ•˜๋‚˜ ์ฝ์–ด๋ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

ํ•ด๊ฒฐ ์ฒ˜๋ฆฌํ•œ ๋ฆฌ๋ทฐ๋Š” โ€˜Resolve conversationโ€™ ๋ฒ„ํŠผ์„ ํ†ตํ•ด ๋‹ซ์•„์ฃผ์ž. ํ•ด๊ฒฐ ์ฒ˜๋ฆฌ๋œ ์ด์Šˆ๋Š” UI์ ์œผ๋กœ ๋‹ซํ˜€์ง€๋Š”๋ฐ ํ™•์ธ์ด ํ•„์š”ํ•˜๋ฉด ์–ธ์ œ๋“  ์—ด์–ด์„œ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

Resolving conversations โ€” GitHub Docs

์ˆจ๊ฒจ์ง„(Outdated) ๋Œ€ํ™”๋“ค ํ•œ๋ฒˆ์— ์—ด์–ด๋ณด๊ธฐ

์ฝ”๋“œ ๋ฆฌ๋ทฐ ๋ฐ›๊ณ  ์ข€ ๋Šฆ๊ฒŒ ์ฐธ๊ฐ€ํ•˜๋ฉด ์˜ค๋ž˜๋œ ๋Œ€ํ™”๋“ค์€ ๋ชจ๋‘ ์ˆจ๊น€ ์ฒ˜๋ฆฌ๊ฐ€ ๋œ๋‹ค. ์ˆจ๊น€ ์ฒ˜๋ฆฌ๋œ ๋Œ€ํ™”์˜ Show outdated ๋ฒ„ํŠผ์„ ํ†ตํ•ด ํ•ด๋‹น ๋‚ด์šฉ์„ ํŽผ์ณ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด ๋•Œ alt ์™€ ํ•จ๊ป˜ ํด๋ฆญํ•˜๋ฉด ์ˆจ๊ฒจ์ง„ ๋ชจ๋“  ๋Œ€ํ™”๋“ค์„ ์ผ๊ด„๋กœ ์—ด ์ˆ˜ ์žˆ๋‹ค.

Changes in pull requests โ€” GitHub Docs

CODEOWNER ์ง€์ •ํ•˜๊ธฐ

๊ฐ ๋””๋ ‰ํ† ๋ฆฌ ํ˜น์€ ํ™•์žฅ์ž ๋ณ„๋กœ ์ฝ”๋“œ ์˜ค๋„ˆ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฃผ์–ด์ง„ ํฌ๋งท์œผ๋กœ .github/CODEOWNERSํŒŒ์ผ์„ ์ž‘์„ฑํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋œ๋‹ค. ์ฝ”๋“œ ์˜ค๋„ˆ๋ฅผ ์ง€์ •ํ•ด๋‘๋ฉด PR ์ƒ์„ฑ์‹œ ๋ฆฌ๋ทฐ์–ด๋กœ ์ž๋™ ๋“ฑ๋ก๋  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ธŒ๋žœ์น˜ ๋ณดํ˜ธ ๊ทœ์น™ ์„ค์ •์‹œ ์ฝ”๋“œ ์˜ค๋„ˆ์˜ ๋ฆฌ๋ทฐ ์—ฌ๋ถ€๋„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

About code owners โ€” GitHub Docs
Introducing code owners โ€” The GitHub Blog

(์ถ”๊ฐ€์ ์œผ๋กœ) ๋ฆฌ๋ทฐ์–ด๋ฅผ ์ง€์ •ํ•˜๋Š” Auto Assign ์•ฑ์„ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

์ฝ”๋“œ ๋ฆฌ๋ทฐ, Auto Assignment ์„ค์ •ํ•˜๊ธฐ

https://docs.github.com/en/organizations/organizing-members-into-teams/managing-code-review-settings-for-your-team#configuring-auto-assignment

Wiki ๊ด€๋ จ

GitHub์—์„œ ์ œ๊ณตํ•˜๋Š” Wiki ๊ด€๋ จ๋œ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด Confluence Wiki ๋ชป์ง€ ์•Š์€ ๋ฌธ์„œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

๋กœ์ปฌ์—์„œ ํŽ˜์ด์ง€ ์ž‘์„ฑ/ํŽธ์ง‘ํ•˜๊ธฐ

GitHub์˜ Wiki๋Š” ์›น ๋ฟ๋งŒ์•„๋‹ˆ๋ผ ๋กœ์ปฌ์—์„œ๋„ ์ƒ์„ฑ/์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•˜๋‹ค. Wiki๋Š” ๋ณ„๋„์˜ ๋ฆฌ๋ชจํŠธ URL์ด ์žˆ์œผ๋ฉฐ git์œผ๋กœ ๊ด€๋ฆฌ๋œ๋‹ค. ์ฆ‰, ํ˜•์ƒ ๊ด€๋ฆฌ๋„ ๊ฐ€๋Šฅํ•˜๊ณ  ์ด๋ฏธ์ง€๋‚˜ ๋””๋ ‰ํ† ๋ฆฌ, ๋ฌธ์„œ ์ด์™ธ์˜ ํŒŒ์ผ๋„ ์—…๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋‹ค.

Adding or editing wiki pages locally โ€” GitHub Docs

Sidebar/Footer ์‚ฌ์šฉํ•˜๊ธฐ

Wiki์— ๋ฌธ์„œ๋ฅผ ์ƒ์„ฑํ•˜๋‹ค๋ณด๋ฉด ์˜ค๋ฅธํŽธ์— โ€˜Pagesโ€™์— ์•ŒํŒŒ๋ฒณ์ˆœ์œผ๋กœ ํ•˜๋‚˜์”ฉ ์Œ“์ด๊ฒŒ ๋œ๋‹ค. ํ•˜์ง€๋งŒ ๋ฌธ์„œ์˜ ๊ตฌ์กฐ๋ฅผ ์ •๋ฆฌํ•˜๊ณ  ์›ํ•˜๋Š” ๋ชฉ์ฐจ๋ฅผ ํ‘œํ˜„ํ•˜๊ณ  ์‹ถ์„ ์ˆ˜ ์žˆ๋‹ค. ์ด ๋•Œ Sidebar๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. ์ถ”๊ฐ€์ ์œผ๋กœ Sidebar ์ด์™ธ์— Footer๋„ ์žˆ์œผ๋ฏ€๋กœ ํ™œ์šฉํ•˜๊ธธ ๋ฐ”๋ž€๋‹ค.

๋กœ์ปฌ์—์„œ Sidebar/Footer๋ฅผ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด _Footer.<extension> ํ˜น์€ _Sidebar.<extension> ์ด๋ฆ„์œผ๋กœ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๋ฉด ๋œ๋‹ค.

Sidebar, Footer ์˜ˆ (Creating a footer or sidebar for your wiki โ€” GitHub Docs)

Wiki์—์„œ ํŽ˜์ด์ง€ ๋งํฌ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ๊ธฐ์กด ๋งˆํฌ๋‹ค์šด๊ณผ๋Š” ๋‹ค๋ฅธ ๋ฌธ๋ฒ•์„ ์ง€์›ํ•œ๋‹ค. ๊ธฐ์กด ๋งˆํฌ๋‹ค์šด ๋ฌธ๋ฒ•๋ณด๋‹ค ๊ฐ„๊ฒฐํ•˜๊ฒŒ ํ•ด์ฃผ๋ฉฐ ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

์ฒซ๋ฒˆ์งธ๋Š” [[File Name]]์ด๋‹ค. ์—ฌ๊ธฐ์„œ ์ฃผ์˜ํ•  ์ ์€ ์‹ค์ œ ํŒŒ์ผ๋ช…์ด Metrix-Definitions.md ์ง€๋งŒ ํ‘œ๊ธฐํ•  ๋• ๋Œ€์‹œ(-)๋ฅผ ๊ณต๋ฐฑ์œผ๋กœ ํ‘œ๊ธฐํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด, [[Metrix Definitions]] ๋กœ ์ž‘์„ฑํ•œ๋‹ค.

๋‘๋ฒˆ์งธ๋Š” [[<Display Name>|<File Name>]]๋กœ ํ‘œ๊ธฐํ•˜๋ฉฐ, ํŒŒ์ผ๋ช…๊ณผ ๋‹ค๋ฅด๊ฒŒ ๋ณด์—ฌ์ฃผ๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, Developer-Edition-์‚ดํŽด๋ณด๊ธฐ.md์„ โ€˜Developer Editionโ€™์œผ๋กœ ํ‘œ๊ธฐํ•˜๊ณ  ์—ฐ๊ฒฐํ•˜๊ณ ์ž ํ•  ๊ฒฝ์šฐ [[Developer Edition|Developer Edition ์‚ดํŽด๋ณด๊ธฐ]]๋กœ ์ž‘์„ฑํ•œ๋‹ค.

์ฐธ๊ณ ๋กœ File Name์„ ์ž‘์„ฑํ•  ๋•Œ ์ฃผ์˜ํ•  ์ ์ด ์žˆ๋‹ค. ๋งˆํฌ๋‹ค์šด๊ณผ ์—ฐ๊ฒฐํ•˜๋ ค๋Š” ํŽ˜์ด์ง€๊ฐ€ ๊ฐ™์€ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ์–ด์•ผ ํ•œ๋‹ค.

๋งˆํฌ๋‹ค์šด(์™ผ์ชฝ) / ๋ Œ๋”๋ง๋œ ํ™”๋ฉด(์˜ค๋ฅธ์ชฝ). (Adding links โ€” GitHub Docs)

๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ ๋ถ„๋ฆฌํ•˜๊ธฐ

GitHub Wiki๋Š” git์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๊ตฌ๋ถ„ํ•ด์„œ ํŒŒ์ผ์„ ๊ด€๋ฆฌํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ์–ด๋“œ๋ฏผ๊ณผ ๊ด€๋ จ๋œ ํŽ˜์ด์ง€๋ฅผ ๋ชจ์•„๋‘๊ธฐ ์œ„ํ•ด ./admin ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ๋˜๋ฏ€๋กœ ๊ฐ„๋‹จํ•˜๋‹ค.

./
โ”œโ”€โ”€ Home.md
โ”œโ”€โ”€ _Footer.md
โ”œโ”€โ”€ _Sidebar.md
โ””โ”€โ”€ admin
โ”œโ”€โ”€ Monitoring.md
โ””โ”€โ”€ _Sidebar.md

๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋‚˜๋ˆ„๋ฉด ๊ฐ ๋””๋ ‰ํ† ๋ฆฌ๋ณ„๋กœ _Sidebar.<extension>, _Footer.<extension>์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ข€ ๋” ๋ฌธ์„œ๋‹ค์šด UI๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค.

์™ผ์ชฝ์€ ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š”, ์˜ค๋ฅธ์ชฝ์€ admin ๋””๋ ‰ํ† ๋ฆฌ๋‚ด์— ์žˆ๋Š” Sidebar์ด๋‹ค.

์ด๋ฏธ์ง€ ์ถ”๊ฐ€ํ•˜๊ธฐ

Wiki์—์„œ๋Š” PNG, JPEG, GIF ์ด๋ฏธ์ง€๋ฅผ ์ง€์›ํ•œ๋‹ค. ์—๋””ํ„ฐ์—์„œ ๋ฐ”๋กœ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

Adding images โ€” GitHub Docs

๋กœ์ปฌ์—์„œ ์ž‘์—…ํ•  ๊ฒฝ์šฐ ์ด๋ฏธ์ง€๋“ค์„ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ๊ด€๋ฆฌํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด, ์ด๋ฏธ์ง€๋“ค์„ ./images๋””๋ ‰ํ† ๋ฆฌ์— ๋ชจ์•„๋‘๊ณ , ๋งˆํฌ๋‹ค์šด์—์„œ[[images/sonarlint.png]]๋กœ ์ž‘์„ฑํ•˜๋ฉด ์ด๋ฏธ์ง€๋ฅผ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋‹ค. ์ฐธ๊ณ ๋กœ ์ƒ๋Œ€์ฃผ์†Œ๋กœ ์ธ์‹๋˜๋ฏ€๋กœ ์ฃผ์˜ํ•˜๊ธฐ ๋ฐ”๋ž€๋‹ค.

./
โ”œโ”€โ”€ Home.md
โ”œโ”€โ”€ _Footer.md
โ”œโ”€โ”€ _Sidebar.md
โ”œโ”€โ”€ admin
โ”‚ โ”œโ”€โ”€ Monitoring.md
โ”‚ โ”œโ”€โ”€ _Sidebar.md
โ”‚ โ””โ”€โ”€ images
โ””โ”€โ”€ images
โ””โ”€โ”€ sonarlint.png

๋ณ€๊ฒฝ ์ด๋ ฅ ๋ณด๊ธฐ

Wiki๋Š” Git์œผ๋กœ ๊ด€๋ฆฌ๋˜๋ฏ€๋กœ ๋‹น์—ฐํžˆ ํ˜•์ƒ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ git log๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. GitHub์€ ์›น์—์„œ Wiki ํŽ˜์ด์ง€์˜ ๋ณ€๊ฒฝ ์ด๋ ฅ ๋˜๋Š” ๋ฆฌ๋น„์ „ ๋น„๊ต ๋ฐ ๋กค๋ฐฑ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

Viewing wiki history โ€” GitHub Docs
Viewing previous content โ€” GitHub Docs
Comparing two revisions โ€” GitHub Docs

๊ฒ€์ƒ‰ํ•˜๊ธฐ

GitHub์—์„œ๋Š” ๋‹ค์–‘ํ•œ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ๋Œ€๋ถ€๋ถ„ ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•œ ๋ฐฉ๋ฒ•์ด๋ฉฐ Wiki ๋‚ด์šฉ์„ ํ•„ํ„ฐ๋งํ•ด์„œ ๊ฒ€์ƒ‰ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ๋‹ค์–‘ํ•œ ์˜ต์…˜์€ ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ํ™•์ธํ•˜๊ธธ ๋ฐ”๋ž€๋‹ค.

ref: Searching wikis โ€” GitHub Docs

๊ธฐํƒ€

Branch Protection Rule

Remote์— ์žˆ๋Š” ๋ธŒ๋žœ์น˜์— ๋ณดํ˜ธ ๊ทœ์น™์„ ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ์™€์ผ๋“œ ์นด๋“œ ๋ฌธ๋ฒ•(*)์„ ์‚ฌ์šฉํ•˜๋ฉด ์—ฌ๋Ÿฌ ๋ธŒ๋žœ์น˜์— ๊ทœ์น™์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ํŒ€์—์„œ ๋ณ„๋„์˜ ๋ธŒ๋žœ์น˜ ์ „๋žต์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ์œ ์šฉํ•  ๊ฒƒ์ด๋‹ค.

Managing a branch protection rule โ€” GitHub Docs

๋ณดํ˜ธ ๊ทœ์น™ ์ค‘ ์ผ๋ถ€๋ฅผ ์•„๋ž˜ ์ ์–ด๋‘์—ˆ๋‹ค. ์•„๋งˆ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๊ทœ์น™์€ โ€˜ํ•„์ˆ˜ ๋ฆฌ๋ทฐ์–ด ์ˆ˜ ์ง€์ •โ€™๊ณผ โ€˜status check ํ™•์ธโ€™ ์ผ ๊ฒƒ ๊ฐ™๋‹ค. ์ด ์™ธ์—๋„ ๋งŽ์€ ์˜ต์…˜์ด ์žˆ๊ณ  ๊ณ„์† ์ถ”๊ฐ€๋˜๋ฏ€๋กœ ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ํ™•์ธํ•ด๋ณด๊ธธ ๋ฐ”๋ž€๋‹ค.

  • PR ๋จธ์ง€ ์ „ ๋ฆฌ๋ทฐ ํ™•์ธ
  • ํ•„์ˆ˜ ๋ฆฌ๋ทฐ์–ด ์ˆ˜ ์ง€์ •
  • ์‹ ๊ทœ ์ปค๋ฐ‹ push๋  ๊ฒฝ์šฐ approve ์ƒํƒœ ํ•ด์ œ
  • Code Owner์˜ ๋ฆฌ๋ทฐ ํ™•์ธ
  • PR์„ ๋‹ซ์„ ์ˆ˜ ์žˆ๋Š” ์‚ฌ๋žŒ ์ œํ•œ
  • PR ๋จธ์ง€ ์ „ status check ํ™•์ธ
  • PR ๋จธ์ง€ ์ „ ๋Œ€ํ™” resolved ์ƒํƒœ ํ™•์ธ
  • ํ•ด๋‹น ๋ธŒ๋žœ์น˜๋กœ push ์‚ฌ์šฉ์ž ์ œํ•œ
  • force push ์ œํ•œ
  • ๋ธŒ๋žœ์น˜ ์‚ญ์ œ ์ œํ•œ

Custom Tabs ์‚ฌ์šฉํ•˜๊ธฐ

GitHub Enterprise(GHE)์—๋Š” โ€˜Custom tabsโ€™ ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค. repo ๋‚ด๋น„๊ฒŒ์ด์…˜๋ฐ”์— ํŠน์ • URL๊ณผ ์—ฐ๊ฒฐ๋œ ๋ฒ„ํŠผ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. repo ์„ค์ •์ด๋ฏ€๋กœ ํŒ€์› ๋ชจ๋‘์—๊ฒŒ ์ ์šฉ๋œ๋‹ค. ์ฐธ๊ณ ๋กœ ํ•œ๋ฒˆ ์ถ”๊ฐ€ํ•œ ๋’ค ์ˆœ์„œ ๋ณ€๊ฒฝ์ด ์•ˆ๋˜๋ฏ€๋กœ ์ˆœ์„œ ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•  ๊ฒฝ์šฐ ์›ํ•˜๋Š” ์ˆœ์„œ์— ๋งž๊ฒŒ ์ œ๊ฑฐ ๋ฐ ์ถ”๊ฐ€ ์ž‘์—…์ด ํ•„์š”ํ•˜๋‹ค.

GHE 2.21์— @me ๊ฒ€์ƒ‰ ์ฟผ๋ฆฌ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ๋Š”๋ฐ, ์ปค์Šคํ…€ ํƒญ๊ณผ ํƒœ๊ทธ๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๋ฆฌ๋ทฐํ•ด์•ผํ•  PR ๋ชจ์•„๋ณด๋Š” ๋งํฌ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

Searching on GitHub โ€” GitHub Docs
  • review-requested:@me: ๋‚˜๋ฅผ ๋ฆฌ๋ทฐ์–ด๋กœ ๋“ฑ๋กํ•œ PR์ด ๋…ธ์ถœ๋œ๋‹ค. But, ๋ฆฌ๋ทฐํ•œ PR์˜ ๊ฒฝ์šฐ ์ œ์™ธ๋œ๋‹ค.
  • -reviewed-by:@me: โ€˜Review changesโ€™๋ฅผ ํ†ตํ•ด โ€˜Commentโ€™, โ€˜Request changesโ€™, โ€˜Approveโ€™๋ฅผ ํ–ˆ์„ ๊ฒฝ์šฐ ํ•ด๋‹น PR์„ ์ œ์™ธํ•œ๋‹ค. ๋‹จ์ˆœ ์ฝ”๋งจํŠธ์˜ ๊ฒฝ์šฐ ์‹ค์ œ ๋ฆฌ๋ทฐ ์ฒ˜๋ฆฌ๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ ๋…ธ์ถœ๋œ๋‹ค.
  • -author:@me: ๋‚ด๊ฐ€ ์ƒ์„ฑํ•œ PR์— ๋Œ€ํ•ด์„œ ์ œ์™ธํ•œ๋‹ค.
GHE 2.22 ์ดํ›„๋ถ€ํ„ฐ ์ปค์Šคํ…€ ํƒญ์€ ๋‚ด๋น„๊ฒŒ์ด์…˜๋ฐ”์— ๋ฐ”๋กœ ๋…ธ์ถœ๋œ๋‹ค.(์™ผ์ชฝ์€ v2.22 ์ด์ „)

Custom Autolink reference ์‚ฌ์šฉํ•˜๊ธฐ

๊ธฐ์กด์— ์ด์Šˆ ํŠธ๋ž˜ํ‚น์œผ๋กœ JIRA๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๋‹ค๋ฉด PR์— ๊ด€๋ จ ์ด์Šˆ๋ฅผ ๋‚จ๊ธฐ๊ธฐ ์œ„ํ•ด JIRA ์ด์Šˆ ๋งํฌ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์„ ๊ฒƒ์ด๋‹ค. ๋งค๋ฒˆ ์ „์ฒด ๋งํฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด GitHub์—๋Š” Autolink references ์‚ฌ์šฉํ•ด๋ณด์ž. ํŠน์ • prefix๋กœ ์‹œ์ž‘๋˜๋Š” ๋ฌธ์ž์ผ ๊ฒฝ์šฐ ๋งํฌ๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. (GHE 2.19 ์— ์ถ”๊ฐ€๋จ)

๐Ÿค” ์‚ฌ๋‚ด์— ๋ณ„๋„ ๋ฌธ์„œ ์‹œ์Šคํ…œ์ด ์žˆ๋‹ค๋ฉด ํ•ด๋‹น ์‹œ์Šคํ…œ์˜ prefix๋ฅผ ํ™œ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

Configuring autolinks to reference external resources โ€” GitHub Docs

๐Ÿค” Intellij IDEA์—๋„ ํŠน์ • prefix๋ฅผ ๋งํฌ๋กœ ๋งŒ๋“ค์–ด์ฃผ๋Š” Issue Navigation ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค.

๋””ํดํŠธ ๋ธŒ๋žœ์น˜ ๋ณ€๊ฒฝ

GitHub๋‚ด์— ๋””ํดํŠธ ๋ธŒ๋žœ์น˜๋Š” ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฒ˜์Œ repo๋ฅผ ์ƒ์„ฑํ•˜๋ฉด master ๋ธŒ๋žœ์น˜๊ฐ€ ๊ธฐ๋ณธ์œผ๋กœ ์ƒ์„ฑ๋˜๊ณ  ์ด ๋ธŒ๋žœ์น˜๊ฐ€ ๋””ํดํŠธ ๋ธŒ๋žœ์น˜๋กœ ์„ค์ •๋œ๋‹ค. ํŒ€์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋””ํดํŠธ ๋ธŒ๋žœ์น˜๋กœ ๋ฐ”๊ฟ”๋ณด์ž. ์˜ˆ๋ฅผ ๋“ค๋ฉด develop์ด๋‚˜ main ๋ธŒ๋žœ์น˜์ผ ์ˆ˜ ์žˆ๋‹ค.

Changing the default branch โ€” GitHub Docs

๋ธŒ๋žœ์น˜๋ช… ๋ณ€๊ฒฝ

๊ธฐ์กด์— ๋ธŒ๋žœ์น˜๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด git ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๋กœ์ปฌ์—์„œ push ํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ ์ƒˆ๋กœ์šด ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ด์ „ ๋ธŒ๋žœ์น˜๋ฅผ ์ง€์šฐ๋Š” ๋“ฑ ์šฐํšŒ ๋ฐฉ์•ˆ์„ ์ฐพ์•˜์„ ๊ฒƒ์ด๋‹ค. 2021๋…„ 1์›”์ฏค ๊ธฐ์กด ๋ธŒ๋žœ์น˜์˜ ์ด๋ฆ„์„ ๋ฐ”๊พธ๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์œผ๋‹ˆ ์ด๊ฒƒ์„ ํ™œ์šฉํ•˜์—ฌ ๋ฆฌ๋„ค์ด๋ฐํ•˜์ž. (GHE 3.1์— ์ถ”๊ฐ€๋จ)

Renaming a branch โ€” GitHub Docs | Support for renaming an exising branch โ€” The GitHub Blog

๐Ÿค” Main ๋ธŒ๋žœ์น˜? 2020๋…„ 10์›”๊ฒฝ GitHub ์—…๋ฐ์ดํŠธ ์ดํ›„ ์‹ ๊ทœ repository ์ƒ์„ฑ์‹œ master๊ฐ€ ์•„๋‹Œ main์œผ๋กœ default branch๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค. IT ์—…๊ณ„์—์„œ๋Š” master/slave, blacklist/whitelist ์™€ ๊ฐ™์€ ์šฉ์–ด์— ๋Œ€ํ•ด์„œ ๋…ผ๋ž€์ด ์žˆ์–ด์™”๋‹ค. ์ด๋Ÿฐ ์ด์Šˆ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด GitHub์€ ๋””ํดํŠธ ๋ธŒ๋žœ์น˜๋ช…์„ main์œผ๋กœ ๋ฐ”๊พธ์—ˆ๋‹ค.
์ด๋Ÿฌํ•œ ๋ณ€๊ฒฝ์€ GitHub ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ IT ์ „๋ฐ˜์ ์œผ๋กœ ์ง„ํ–‰๋˜์—ˆ๋‹ค. Git์€ 2.28.0 ๋ฒ„์ „์— init.defaultBranch๋ผ๋Š” ์˜ต์…˜์„ ์ œ๊ณตํ•˜์˜€๊ณ , Jenkins๋Š” โ€œslaveโ€๋ผ๋Š” ์šฉ์–ด๋ฅผ โ€œagentโ€๋กœ ๋ฐ”๊พธ์—ˆ๋‹ค. (์‹ ์ž…์ด main ๋ธŒ๋žœ์น˜๋ฅผ ๊ฐ€์ ธ์™€ ๋ฐ”๊พธ์ž๊ณ  ํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ ๋ฐฐ๊ฒฝ ์ง€์‹์„ ์•Œ์•„๋‘์ž.)

โžฅ ref: github/renaming
โžฅ ref: The default branch for newly-created repositories is now main โ€” The GitHub Blog
โžฅ ref: Introducing init.defaultBranch- The GitHub Blog
โžฅ ref: On Jenkins Terminology Updates โ€” Jenkins Blog

๋ฒˆ์™ธ) ์œ ์šฉํ•œ ์‘์šฉํ”„๋กœ๊ทธ๋žจ

GitHub๊ณผ ๊ด€๋ จ๋œ ๊ธ€์ด๋‹ˆ ์ž‘์„ฑํ•œ๊น€์— GitHub ๊ด€๋ จํ•˜์—ฌ ์œ ์šฉํ•œ ํ”„๋กœ๊ทธ๋žจ๋„ ์†Œ๊ฐœํ•œ๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ ํŠœ๋‹์˜ ๋์€ ์ˆœ์ •์ด๋ผ๊ณ  Git๊ณผ GitHub ๊ธฐ๋ณธ ๊ธฐ๋Šฅ๋งŒ ์“ฐ๋ คํ•˜์ง€๋งŒ Trailer๋‚˜ Refind GitHub์€ ์‚ฌ์šฉํ•˜๋‹ค ์—†์œผ๋ฉด ์ƒ์‚ฐ์„ฑ์ด ๊ฝค๋‚˜ ๋–จ์–ด์ ธ์„œ.. ๋‚ด๊ฒŒ ํ•„์ˆ˜ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ๋˜์—ˆ๋‹ค.

Applications

Chrome Extensions

Web

  • https://github.githistory.xyz/
    ํŠน์ • ํŒŒ์ผ์— ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์‹œ๊ฐํ™”ํ•ด์„œ ๋ณด์—ฌ์ฃผ๋Š” ๊ธฐ๋Šฅ
  • https://initialcommit.com/tools/git-story
    ์ปค๋ฐ‹ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์• ๋‹ˆ๋ฉ”์ด์…˜์œผ๋กœ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๊ธฐ๋Šฅ

๋งˆ์น˜๋ฉฐ

๋‚ด๊ฐ€ ์‚ฌ์šฉํ•˜๋Š”, ์•Œ๊ณ ์žˆ๋Š”, ์ถ”์ฒœํ•˜๋Š” ๋ชจ๋“  ํŒ๋“ค์„ ์ ์–ด๋ดค๋‹ค. ๋ถ„๋ช… GitHub ๋ณธ์ธ๋“ค๋„ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์–ด๋–ป๊ฒŒ๋“  ์ƒ์‚ฐ์„ฑ์„ ๋†’ํžˆ๊ธฐ ์œ„ํ•ด ๋งŒ๋“  ๊ธฐ๋Šฅ๋“ค์ผํ…Œ๋‹ˆ ํ•œ๋ฒˆ ์‚ฌ์šฉํ•ด๋ณด์ž.

์†Œ๊ฐœํ•œ ํŒ๋“ค ์™ธ์—๋„ ์ •์ ์ธ ํŽ˜์ด์ง€๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š” GitHub Pages, ์—…๋ฌด ์ž๋™ํ™”๋ฅผ ์œ„ํ•œ GitHub Actions, ๋‹ค์–‘ํ•œ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ GitHub APIs ๋“ฑ GitHub์„ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• ๋ฐ ํŒ์€ ๋„ˆ๋ฌด๋‚˜๋„ ๋งŽ๋‹ค. GitHub์˜ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ๋“ค์ด ๋Œ€ํ•ด์„œ ๊ถ๊ธˆํ•˜๋‹ค๋ฉด ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•˜๊ธธ ๋ฐ”๋ž€๋‹ค.

์ดํ›„ ์—…๋ฐ์ดํŠธ๋œ ๊ธฐ๋Šฅ

--

--

Written by geekk

๊ฐœ๋ฐœํ•˜๋ฉด์„œ ๋ณ„์˜๋ณ„ ๊ณ ๋ฏผ์ด ๋งŽ๋‹ค. ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ์ƒ์‚ฐ์„ฑ์„ ์กฐ๊ธˆ์ด๋‚˜๋งˆ ์˜ฌ๋ฆด ์ˆ˜ ์žˆ์„๊นŒ ๐Ÿค”

Responses (1)