git log

์ด๋ฒˆ์—” ๊ทธ๋™์•ˆ ์šฐ๋ฆฌ๊ฐ€ ๋ณด๋‚ธ ์ปค๋ฐ‹ ๋ชฉ๋ก์„ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ด…์‹œ๋‹ค.

๋ชจ๋“  ๋‚ด์šฉ์€ ์ค‘๊ฐ„์— ๋‚˜๊ฐ€๊ณ  ์‹ถ์œผ๋ฉด ํ„ฐ๋ฏธ๋„์— q๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

1. git log

๊ฐ€์žฅ ๊ธฐ์ดˆ๊ฐ€ ๋˜๋Š” ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ๋ชฉ๋ก ํ™•์ธ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

git log๋งŒ ์ž…๋ ฅํ•ด๋ณด๋ฉด ์œ„์™€ ๊ฐ™์ด ์ปค๋ฐ‹ ๋‚ด์—ญ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋…ธ๋ž€์ƒ‰ ์ค„์€ ์ปค๋ฐ‹์˜ ํ•ด์‹œ ์•„์ด๋””์ธ๋ฐ, ์ด ๊ฐ’์€ ํ•˜๋‚˜์˜ ์ปค๋ฐ‹์— ๋Œ€์‘ํ•˜๋Š” ์œ ์ผํ•œ ๊ฐ’์œผ๋กœ ํŠน์ • ์ปค๋ฐ‹์„ ์กฐ์ž‘ํ•  ๋•Œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

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

์ฐธ๊ณ ๋กœ ์ˆซ์ž ์˜ต์…˜์„ ๋ถ™์ด๋ฉด ํ™•์ธํ•˜๋Š” ์ปค๋ฐ‹์˜ ์ตœ๋Œ€ ๊ฐœ์ˆ˜๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3๊ฐœ์˜ ์ปค๋ฐ‹์„ ํ™•์ธํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด git log -3์„ ์ž…๋ ฅํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ 3๊ฐœ๊ฐ€ ๋‚˜์˜ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. git log โ€”oneline

์ปค๋ฐ‹ ์•„์ด๋””์™€ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ์ œ๋ชฉ๋งŒ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

๋ณดํ†ต ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ์ œ๋ชฉ์€ ์–ด๋–ค ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ–ˆ๋Š”์ง€ ์š”์•ฝํ•œ ๋‚ด์šฉ์ด ๋‹ด๊ฒจ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋น ๋ฅด๊ฒŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ๋„ 5๊ฐœ์˜ ์ปค๋ฐ‹๋งŒ ํ™•์ธํ•œ๋‹ค๊ณ  ํ•ด๋ด…์‹œ๋‹ค.

git log --oneline -5 ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

3. git log ์˜ต์…˜ 1 - ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ๊ฒ€์ƒ‰

์ž์ฃผ ์‚ฌ์šฉํ• ๋งŒํ•œ ์˜ต์…˜์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€์— tutorial์ด ๋“ค์–ด๊ฐ„ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋ฅผ ์ฐพ์•„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ธฐ๋Šฅ์€ grep์ด๋ผ๋Š” ์˜ต์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

git log --oneline --grep "tutorial"์„ ์ž…๋ ฅํ•ด๋ด…์‹œ๋‹ค.

oneline ์˜ต์…˜์˜ ๊ฒฝ์šฐ์—” ์ œ๊ฐ€ ์ž„์˜๋กœ ์„ค์ •์„ ํ•œ ๊ฒƒ์ด์ง€ oneline์ด ์—†์–ด๋„ ์ƒ๊ด€์€ ์—†์Šต๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ tutorial์„ ์ž…๋ ฅํ•œ ๋‚ด์šฉ๋งŒ ๋‚˜์˜ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ ๋กœ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ด๋ฒˆ์—” Tutorial์„ ๊ฒ€์ƒ‰ํ•ด๋ด…์‹œ๋‹ค.

๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋กœ ๋‹ค๋ฅธ ๊ฒฐ๊ณผ๋ฌผ์ด ๋‚˜์˜จ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4. git log ์˜ต์…˜ 2 - ํŒŒ์ผ ๋ณ€๊ฒฝ ์š”์•ฝ

ํŠน์ • ์ปค๋ฐ‹์— ์–ด๋Š์ •๋„์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ด๋ด…์‹œ๋‹ค.

git log --oneline --shortstat ์„ ์ž…๋ ฅํ•ด๋ด…์‹œ๋‹ค.

์ด๋ ‡๊ฒŒ ๋ช‡ ๊ฐœ์˜ ํŒŒ์ผ์ด ๋ณ€๊ฒฝ๋๋Š”์ง€, ๋ช‡ ๊ฐœ์˜ ์ฝ”๋“œ๊ฐ€ ์ƒ์„ฑ/์‚ญ์ œ๊ฐ€ ๋๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

5. git log ์˜ต์…˜ 3 - merge ๋ฉ”์‹œ์ง€ ์‚ญ์ œ

Pull Request๋ฅผ ํ•ด์„œ merge๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด merge๋ฅผ ํ–ˆ๋‹ค๋Š” ๊ธฐ๋ก์„ ๋‚จ๊ธฐ๊ธฐ ์œ„ํ•ด ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€์— ์•„๋ฌด ์˜๋ฏธ ์—†๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚จ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋ณดํ†ต ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๊ธฐ๋ก์„ ๊น”๋”ํ•˜๊ฒŒ ๊ด€๋ฆฌํ•œ๋‹ค๋ฉด squash and merge๋ฅผ ํ†ตํ•ด pull request์— ์žˆ๋Š” ๋ชจ๋“  ์ปค๋ฐ‹์„ ํ•˜๋‚˜์˜ ์ปค๋ฐ‹์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ๋‚˜์˜จ #61์ด Pull Request์˜ ๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ผ๋ฐ˜์ ์ธ merge๊ฐ€ ๋  ๊ฒฝ์šฐ, ๋ชจ๋“  ์ปค๋ฐ‹์ด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์ €์žฅ์ด ๋˜๋Š”๋ฐ, ์œ„ ์‚ฌ์ง„๊ณผ ๊ฐ™์ด ๋จธ์ง€๊ฐ€ ๋๋‹ค๋Š” ๊ฒƒ๋งŒ ๊ธฐ๋กํ•˜๋Š” ์•„๋ฌด๋Ÿฐ ๋‚ด์šฉ์ด ์—†๋Š” ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๊ฐ€ ๋“ค์–ด๊ฐ€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์ด ๋ฉ”์‹œ์ง€๋ฅผ ์‚ญ์ œํ•˜๊ณ  ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ๋ชฉ๋ก์„ ํ™•์ธํ•  ๊ฒฝ์šฐ git log --oneline --no-merges ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

Last updated