2021-07-13(Tue)

Facts (์‚ฌ์‹ค, ๊ฐ๊ด€)

  • ๊ฐ์‚ฌ์ผ๊ธฐ๋ฅผ 7์ผ์งธ ์ ๋Š” ๊ฒƒ์„ ์„ฑ๊ณตํ–ˆ๋‹ค.

  • ๋žœ๋”ฉ ๊ณผ์ œ์˜ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ˜์˜ํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ๊ฐœ์„ ํ–ˆ๊ณ , ๋‹ค์‹œ ํ”ผ๋“œ๋ฐฑ ์š”์ฒญํ–ˆ๋‹ค.

  • ์ƒํ™œ์ฝ”๋”ฉ ์†Œ์ŠคํŠธ๋ฆฌ ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ–ˆ๋‹ค.

Feelings (๋Š๋‚Œ, ์ฃผ๊ด€)

๊ทธ๊ฐ„ TIL์„ ์–ด๋””์— ๋‚จ๊ธธ์ง€ ๋ฐฉํ™ฉํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ, ๋…ธ์…˜์—๋‹ค๊ฐ€ ๋‚จ๊ธฐ๋‹ค๊ฐ€ ๋‹ค์‹œ gitbook์œผ๋กœ ๋Œ์•„์™”๋‹ค. gitbook์—์„œ ๋…ธ์…˜์œผ๋กœ ๊ฐˆ์•„ํƒ„ ๊ฒƒ์€ ํ•œ๊ธ€๋กœ ๋ฌธ์„œ ์ž‘์„ฑํ•˜๋Š”๊ฒŒ ๋ถˆํŽธํ•œ ๊ฒƒ์ด ๊ฐ€์žฅ ํฐ ์ด์œ ์˜€๋Š”๋ฐ, ํ•ด๋‹น ์ด์Šˆ๊ฐ€ safari์—์„œ๋Š” ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์ƒ๊ท  ํŒ€์žฅ๋‹˜์ด ์•Œ๋ ค์ฃผ์…”์„œ ํ•ด์†Œํ•  ์ˆ˜ ์žˆ์—ˆ๋‹คใ…Žใ…Ž gitbook ํŒ€์— ์ง์ ‘ ๋ฌธ์˜ํ•ด์„œ ๋‹ต๋ณ€ ๋ฐ›์œผ์…จ๋‹ค๋Š”๋ฐ, ๋ฌธ์ œํ•ด๊ฒฐ์‚ฌ์˜ ๋ฉด๋ชจ๋ฅผ ๋ณธ ๊ฒƒ ๊ฐ™๋‹ค. ๋ณธ๋ฐ›์•„์•ผ์ง€.

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

๊นƒ์„ GUI๋กœ ๋‹ค๋ฃจ๋Š” ์†Œ์ŠคํŠธ๋ฆฌ..! ํŒ€์›๋“ค์ฒ˜๋Ÿผ ์ž˜ ์“ฐ๊ณ  ์‹ถ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์•„์ง rebase -i ๊ฐ™์€๊ฑด ์ปค๋งจ๋“œ๋ผ์ธ์ด ๋” ํŽธํ•œ ๊ฒƒ ๊ฐ™๋‹ค. cherry pick๋„ ์†”์งํžˆ ์•„์ง ๋”ฑํžˆ ์จ๋ณธ์ ์ด ์—†์–ด์„œ ์ต์ˆ™์น˜ ์•Š๋‹ค.. ์˜์‹์ ์œผ๋กœ ํ•™์Šตํ•ด์„œ ์ฑ„์›Œ๋ด์•ผ๊ฒ ๋‹ค!

Findings (๋ฐฐ์šด ์ )

์†Œ์ŠคํŠธ๋ฆฌ ์‚ฌ์šฉ๋ฒ•์„ ์ตํ˜”๋‹ค.

  • reset --hard

    • ๋Œ์•„๊ฐ€๊ณ  ์‹ถ์€ ๋ฒ„์ „์„ ์šฐํด๋ฆญํ•˜์—ฌ, reset -> hard ํ•˜๋ฉด ๋œ๋‹ค.

  • revert

    • git revert๋Š” ์†Œ์ŠคํŠธ๋ฆฌ์—์„œ๋Š” reverse commit์ด๋‹ค.

    • ํ˜„์žฌ ๋ฒ„์ „์—์„œ ๋Œ์•„๊ฐ€๊ณ  ์‹ถ์€ ๋ฒ„์ „๊นŒ์ง€, ์ฐจ๋ก€๋กœ reverse commit์„ ํด๋ฆญํ•ด์ค€๋‹ค.

  • git head

    • ํŠน์ • ๋ฒ„์ „์„ ๋”๋ธ” ํด๋ฆญํ•˜๋ฉด ๋œ๋‹ค.

    • ์›๋ž˜ ์ƒํƒœ๋กœ ๋Œ์•„์˜ฌ ๋• ์ขŒ์ธกmaster ๋ฅผ ๋”๋ธ”ํด๋ฆญํ•˜์ž.

  • Copy SHA to Clipboard

    • ์ปค๋ฐ‹ ์•„์ด๋””๋ฅผ ํด๋ฆฝ๋ณด๋“œ์— ์ €์žฅํ•œ๋‹ค.

Git Merge ๋ฐฉ์‹๋„ ํ™•์ธํ–ˆ๋‹ค.

  • 3 way merge

    • base ๋ธŒ๋žœ์น˜์—์„œ A์™€ B ๋ธŒ๋žœ์น˜๊ฐ€ ๋ถ„๊ธฐ๋œ ์ƒํ™ฉ์ผ ๋•Œ, A์™€ B๋ฅผ ๋ณ‘ํ•ฉํ•˜๋ฉฐ ์ถฉ๋Œ์ด ๋‚œ ๊ฒฝ์šฐ, ์•„๋ž˜ ๊ณผ์ •์„ ํ†ตํ•ด ๋ณ‘ํ•ฉํ•œ๋‹ค.

      1) base ๋ธŒ๋žœ์น˜์™€ ๋น„๊ตํ•˜์—ฌ '์ˆ˜์ •๋˜์ง€ ์•Š์€ ๋ฒ„์ „'๊ณผ '์ˆ˜์ •๋œ ๋ฒ„์ „'์˜ ์ฝ”๋“œ๋ฅผ ๊ตฌ๋ถ„ํ•œ๋‹ค.

      2) '์ˆ˜์ •๋œ ๋ฒ„์ „'์˜ ์ฝ”๋“œ๋ฅผ ์ฑ„ํƒํ•˜์—ฌ ์ž๋™ ๋ณ‘ํ•ฉํ•œ๋‹ค. 3) ๋งŒ์•ฝ '์ˆ˜์ •๋˜์ง€ ์•Š์€ ๋ฒ„์ „'์˜ ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์—†์„ ๊ฒฝ์šฐ์—” ์ˆ˜๋™์œผ๋กœ ๋ณ‘ํ•ฉํ•œ๋‹ค.

Rspec ์Šคํƒ€์ผ๊ฐ€์ด๋“œ๋ฅผ ์ •๋…ํ•˜๊ณ , ์šฉ๋ฒ•์„ ์ตํ˜”๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ…Œ์ŠคํŠธ์ผ€์ด์Šค๋ฅผ ๊ฐœ์„ ํ–ˆ๋‹ค.

Rubymine์—์„œ rubocop ์‚ฌ์šฉ๋ฐฉ๋ฒ•์„ ์ตํ˜”๊ณ , rubocop์—์„œ ๊ถŒ์žฅํ•˜๋Š” ์Šคํƒ€์ผ์„ ํ•™์Šตํ–ˆ๋‹ค.

์žฌ์›๋‹˜ ๋•๋ถ„์— ๋งํฌ๋ฅผ ํ†ตํ•ด ActiveRecord์˜ exists? ๋ฉ”์„œ๋“œ ์šฉ๋ฒ•์„ ์ตํ˜”๋‹ค. ๊ตณ์ด where๋ฅผ ์“ฐ์ง€ ์•Š์•„๋„ ๋˜๋”๋ผ!

Affimation (์ž๊ธฐ ์„ ์–ธ)

  • ๋‚˜๋Š” ๊ฒธ์†ํžˆ ์Šค์Šค๋กœ์˜ ๋ถ€์กฑํ•จ์„ ์ธ์ง€ํ•œ๋‹ค.

  • ๊ทธ๋ฆฌ๊ณ  ๋ถ€์กฑํ•จ์„ ์ ๊ทน์ ์œผ๋กœ ๋ฉ”๊พธ์–ด

  • ๊ฒฐ๊ตญ ์„ฑ์žฅํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋‹ค.

Last updated