๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๊ฐœ์ธ๊ณต๋ถ€/Git & GitHub

[Git & GitHub] ์ด์ „ commit์œผ๋กœ ๋˜๋Œ๋ฆฌ๊ธฐ : reset์˜ ๊ฐœ๋…

by ๐Ÿ‡๋ฐ•๋ด‰๋ด‰๐Ÿ‡ 2020. 5. 23.

 

 

 

[Git & GitHub] ๋ณ‘ํ•ฉ(merge)์œผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ์ถฉ๋Œ ํ•ด๊ฒฐํ•˜๊ธฐ

[Git & GitHub] ๋ณ‘ํ•ฉ(merge) ๊ฐœ๋… ๋ฐ ๋ณ‘ํ•ฉ(merge)ํ•  ๋•Œ ๋‚˜ํƒ€๋‚˜๋Š” ์ƒํ™ฉ [Git & GitHub] branch(๋ธŒ๋žœ์น˜)์™€ checkout(์ฒดํฌ์•„์›ƒ) ๊ฐœ๋… [Git & GitHub] checkout์„ ํ™œ์šฉํ•ด ์ €์žฅํ•˜์ง€ ์•Š์€ ๋‚ด์šฉ ์ทจ์†Œํ•˜๊ธฐ [Git & GitHub]..

onelight-stay.tistory.com

 

์ด๋ฒˆ์—” ๊ธฐ์กด์˜ ๋‚ด์šฉ์„ ๊ณผ๊ฑฐ์˜ ์‹œ์ ์œผ๋กœ ๋˜๋Œ๋ฆฌ๋Š”

reset์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž.

 

 


 

 

< ์ƒํ™ฉ 1>

์›๊ฒฉ ์ €์žฅ์†Œ์— ์ž๋ฃŒ๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ์„ ๊ฒฝ์šฐ :

 

 

์ž‘์—… ์ค‘์ด๋˜ ํŒŒ์ผ์—์„œ ๋งŒ์•ฝ์— ํ•ด๋‹น ๋ถ€๋ถ„๊นŒ์ง€ ์ž‘์„ฑํ•œ ๋‚ด์šฉ์„ ๋‹ค์‹œ ์ทจ์†Œํ•˜๊ณ 

'## ๋ธŒ๋žœ์น˜ ๋ณ€๊ฒฝํ•˜๊ธฐ' ๊นŒ์ง€๋กœ ๋‚ด์šฉ์„ ๋˜๋Œ๋ฆฌ๊ณ  ์‹ถ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ?

 

์ด๋Ÿด ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ 'reset'์ด๋‹ค.

 

 

์†Œ์Šค ํŠธ๋ฆฌ์—์„œ ๋ฆฌ์…‹์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๊ฐ„๋‹จํ•˜๋‹ค.

 

๋จผ์ € ํ˜„์žฌ master ๋ธŒ๋žœ์น˜๊ฐ€ ์žˆ๋Š” ์ปค๋ฐ‹ ์œ„์น˜๋ฅผ ํŒŒ์•…ํ•œ ํ›„,

๋Œ์•„๊ฐ€๊ณ  ์‹ถ์€ ์‹œ์ ์„ ์ฐพ์•„๋‚ธ๋‹ค.

 

์ฐพ์•„๋‚ด๋Š” ๋ฐฉ๋ฒ•์€ ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ปค๋ฐ‹์„ ํ™•์ธํ•˜๊ฑฐ๋‚˜,

์šฐ์ธก ํ•˜๋‹จ์— ์žˆ๋Š” ์ฝ”๋“œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ํ™•์ธํ•ด ์ฐพ์•„๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

 

 

๋˜๋Œ๋ฆด ์ปค๋ฐ‹ ์‹œ์ ์„ ํด๋ฆญํ•ด ์ค€ ๋’ค ์†Œ์Šค ํŠธ๋ฆฌ์˜ 'reset'์ธ

'์ด ์ปค๋ฐ‹๊นŒ์ง€ ํ˜„์žฌ ๋ธŒ๋žœ์น˜๋ฅผ ์ดˆ๊ธฐํ™”'๋ฅผ ๋ˆŒ๋Ÿฌ์ค€๋‹ค.

 

 

๊ทธ๋Ÿฌ๋ฉด Soft - Mixed - Hard 3๊ฐ€์ง€๊ฐ€ ๋‚˜์˜ค๋Š”๋ฐ

Hard๋ฅผ ์„ ํƒํ•ด์ค€๋‹ค.

 

์ด๊ฒƒ์ด ๋ฐ”๋กœ ์šฐ๋ฆฌ๊ฐ€ ์ด๋ฒˆ์— ๋ฐฐ์šธ 'reset'์ด๋ฉฐ,

์ฝ”๋“œ๋กœ ๋”ฐ์ง€๋ฉด git reset --hard์ด๋‹ค.

 

 

๊ทธ๋Ÿฌ๋ฉด master ๋ธŒ๋žœ์น˜๊ฐ€ ์•„๋ž˜๋กœ ๋‚ด๋ ค๊ฐ„ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

ํŒŒ์ผ์— ๋“ค์–ด๊ฐ€ ํ™•์ธํ•ด ๋ณด๋ฉด ๋‚ด์šฉ์ด ์—†์–ด์ง„ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

 

๋งŒ์•ฝ์— ๋‚ด์šฉ์„ ๋‹ค์‹œ ์ตœ๊ทผ ๋‚ด์šฉ์œผ๋กœ ์›๋ž˜๋Œ€๋กœ ๋˜๋Œ๋ฆฌ๊ณ  ์‹ถ๋‹ค๋ฉด

๊ฐ€์žฅ ์ตœ๊ทผ ์ปค๋ฐ‹์„ ๋ˆ„๋ฅธ ํ›„ '๋ณ‘ํ•ฉ'์„ ๋ˆ„๋ฅด๋ฉด ๋œ๋‹ค.

 

ํ˜„์žฌ ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ์›๊ฒฉ ์ €์žฅ์†Œ(github)์— ์ž๋ฃŒ๋“ค์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณ‘ํ•ฉ์œผ๋กœ ๋˜๋Œ๋ฆฌ๋Š” ๊ฒŒ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ 

๋งŒ์•ฝ ์›๊ฒฉ ์ €์žฅ์†Œ์— ์ž๋ฃŒ๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š์•˜์„ ๊ฒฝ์šฐ์—๋Š” ๋˜๋Œ๋ฆด์ˆ˜ ์—†๋‹ค.

 

 


 

 

< ์ƒํ™ฉ 2>

์›๊ฒฉ์ €์žฅ์†Œ์— ์ž๋ฃŒ๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ์ง€ ์•Š์„ ๊ฒฝ์šฐ :

 

 

์ด๋ฒˆ์—๋Š”  ํŒŒ์ผ์— ์ƒˆ๋กœ์šด ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•œ ํ›„ ์›๊ฒฉ์ €์žฅ์†Œ์— ์ €์žฅํ•˜์ง€ ์•Š์€ ์ฑ„๋กœ

๋˜๋Œ๋ฆฌ๊ธฐ๋ฅผ ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

(add, commit๊นŒ์ง€ ์ง„ํ–‰ํ•˜๊ณ  push๋Š” ์ง„ํ–‰ํ•˜์ง€ ์•Š๋Š”๋‹ค.)

 

 

์ปค๋ฐ‹๊นŒ์ง€ ์ง„ํ–‰ํ•œ ์ƒํƒœ์ด๋ฉฐ,

์ด๋•Œ ์›๊ฒฉ ์ €์žฅ์†Œ์— push ํ•˜์ง€๋Š” ์•Š๊ณ  ๋ฐ”๋กœ ๋˜๋Œ๋ฆฌ๊ธฐ๋ฅผ ๋ˆŒ๋Ÿฌ๋ณธ๋‹ค.

(์ปค๋ฐ‹์ด 1๊ฐœ๊ฐ€ ์•„๋‹Œ 2๊ฐœ๊ฐ€ ๋ฐœ์ƒํ•œ ์ด์œ ๋Š”, ๊ทธ๋ƒฅ ๋”ฐ๋กœ ๋‘ ๋ฒˆ์„ ํ•ด์ค€ ๊ฑฐ๋‹ค)

 

 

< ์ƒํ™ฉ 1>๊ณผ๋Š” ๋‹ฌ๋ฆฌ ์ปค๋ฐ‹์ด ๋ณด์กด๋˜์ง€ ์•Š๊ณ  ๋ณต๊ตฌํ•  ์ˆ˜ ์—†๊ฒŒ ์•„์˜ˆ ์‚ฌ๋ผ์กŒ๋‹ค.

 

 


 

 

< ์ƒํ™ฉ 3>

๊ฐ•์ œ ํ‘ธ์‹œ push --force :

 

 

๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•œ ํ›„ ์ปค๋ฐ‹ํ•˜๊ณ  ํ‘ธ์‹œ๊นŒ์ง€ ์ง„ํ–‰ํ•ด์ค€๋‹ค.

 

 

์œ„์— ์žˆ๋Š” master ๋ธŒ๋žœ์น˜๋ฅผ ์•„๋ž˜์— ์žˆ๋Š” 'Merge branch 'conflict''๋กœ ๋˜๋Œ๋ฆฌ๊ธฐ๋ฅผ ํ•ด์ค€๋‹ค.

 

 

master ๋ธŒ๋žœ์น˜๊ฐ€ ํ•ด๋‹น ์œ„์น˜๋กœ ๋˜๋Œ์•„ํ•œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

์—๋””ํ„ฐ์— ์ ‘์†ํ•ด ๋‹ค์‹œ ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ๊ทธ๋Œ€๋กœ ์ปค๋ฐ‹ํ•ด์ค€๋‹ค.

 

 

์†Œ์Šค ํŠธ๋ฆฌ์— ๋“ค์–ด๊ฐ€๋ฉด ์•„๊นŒ์™€๋Š” ๋‹ค๋ฅด๊ฒŒ push ์นธ๊ณผ pull์˜ ์ˆซ์ž๊ฐ€ ๋™์‹œ์— ๋‚˜์˜ค๊ณ 

๋ธŒ๋žœ์น˜ ๋ชจ์–‘๋งˆ์ €๋„ ์ด์ƒํ•œ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 

์ด ์ƒํƒœ์—์„œ push๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

 

์ด์œ ๋Š” ๊ฐ€์žฅ ์ตœ๊ทผ์— ์ปค๋ฐ‹ํ•œ '๋˜๋Œ๋ฆฌ๊ธฐ ๋‚ด์šฉ ์ถ”๊ฐ€ (๋ฆฌ์…‹)'์ด

'Merge branch 'conflict'' ์ปค๋ฐ‹์œผ๋กœ๋ถ€ํ„ฐ ์˜จ ๊ฒƒ์ธ๋ฐ

์ด๊ฒƒ์ด ์›๊ฒฉ ์ €์žฅ์†Œ๋ณด๋‹ค ๊ณผ๊ฑฐ์— ์œ„์น˜ํ•ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์—

push๋ฅผ ํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

(origin์ด ์›๊ฒฉ ์ €์žฅ์†Œ์˜ ์ด๋ฆ„์ด๋‹ค.)

 

์ด๋•Œ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์ด ๋ฐ”๋กœ ๊ฐ•์ œ ํ‘ธ์‹œ์ด๋‹ค.

 

 

push๋ฅผ ๋ˆŒ๋Ÿฌ์ฃผ๋ฉด ๊ฐ•์ œ ํ‘ธ์‹œ๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋˜๋Š”๋ฐ

์ฒดํฌ๋ฐ•์Šค๊ฐ€ ๋ง‰ํ˜€์žˆ์œผ๋ฉด ํ„ฐ๋ฏธ๋„์—์„œ ์ง์ ‘ ์ž…๋ ฅํ•ด ํ•ด๊ฒฐํ•ด์•ผ ํ•œ๋‹ค.

 

 

์†Œ์Šค ํŠธ๋ฆฌ์— ๋“ค์–ด๊ฐ€๋ฉด ์šฐ์ธก์— ๋ฐ”๋กœ ๋ณด์ด๋Š” 'ํ„ฐ๋ฏธ๋„'์„ ํด๋ฆญ ํ›„

๊ฐ•์ œ ํ‘ธ์‹œ ๋ช…๋ น์–ด git push --force๋ฅผ ์ž…๋ ฅํ•ด ์ค€๋‹ค.

 

 

์„ฑ๊ณตํ–ˆ๋‹ค๋ฉด ํ•ด๋‹น ์ฐฝ์ด ๋œฌ๋‹ค.

 

 

ํ›„์— ์ €์žฅ์†Œ๋ฅผ ๋‹ซ๊ณ  ๋‹ค์‹œ ์—ด์—ฐ ๊ฐ•์ œ ํ‘ธ์‹œ๊ฐ€ ๋˜์–ด์žˆ๋Š” ์ƒํƒœ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

(๋Œ€์‹  ๊ฐ•์ œ ํ‘ธ์‹œ๋กœ ์ธํ•ด ์ฒ˜์Œ์— ์ถ”๊ฐ€ํ•œ ๋‚ด์šฉ์€ ์‚ฌ๋ผ์ง€๊ณ  ๋‚˜์ค‘์— ์ปค๋ฐ‹๋œ ๋‚ด์šฉ์œผ๋กœ ์œ ์ง€๋œ๋‹ค.)

 

 


 

 

< ์ƒํ™ฉ 4>

๊ฐ•์ œํ‘ธ์‹œ ์—†์ด ํ‘ธ์‹œ ์„ฑ๊ณตํ•˜๊ธฐ :

 

 

< ์ƒํ™ฉ 3>์ฒ˜๋Ÿผ master ๋ธŒ๋žœ์น˜๋ฅผ ๋‹ค์‹œ ์•„๋žซ๋‹จ๊ณ„๋กœ ๋˜๋Œ๋ ค์ค€๋‹ค.

 

 

์ง€์›Œ์ง„ ์ž๋ฆฌ์— ๋‹ค์‹œ ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์ €์žฅ ํ›„, ์ปค๋ฐ‹ํ•ด์ค€๋‹ค.

 

 

์•„๊นŒ์™€ ๊ฐ™์€ ๊ฐ€์ง€ ๋ชจ์–‘์ด ๋‚˜ํƒ€๋‚˜๋Š”๋ฐ ์ด๋•Œ push๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด

๋˜ ์—๋Ÿฌ ๋ฐœ์ƒ์œผ๋กœ ๊ฐ•์ œ ํ‘ธ์‹œ๋ฅผ ํ•ด์•ผ ํ•  ๊ฒƒ์ด๋‹ค.

 

์ด๋•Œ์˜ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์€ ๋ฐ‘์— ์žˆ๋Š” ์›๊ฒฉ ์ €์žฅ์†Œ๋ฅผ merge ํ•œ ํ›„์— push๋ฅผ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

 

 

๋จผ์ € ์›๊ฒฉ ์ €์žฅ์†Œ์™€ merge๋ฅผ ํ•ด์ฃผ๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”๋ฐ

์นจ์ฐฉํ•˜๊ฒŒ ์ถฉ๋Œ ํ•ด๊ฒฐ์˜ '๋‚ด ๊ฒƒ' ์„ ํƒ์„ ๋ˆŒ๋Ÿฌ ์˜ค๋ฅ˜๋ฅผ ์—†์• ์ค€๋‹ค.

 

 

๊ทธ ํ›„ ๊ฐฑ์‹  ์‚ฌํ•ญ์„ ์ž…๋ ฅํ•˜๊ธฐ ์œ„ํ•ด ์ปค๋ฐ‹์„ ์ž‘์„ฑํ•ด ์ค€๋‹ค.

 

 

๋ณ‘ํ•ฉ์ด ์ œ๋Œ€๋กœ ๋œ ๊ฒƒ์„ ํ™•์ธํ•œ ํ›„ push๋ฅผ ์ง„ํ–‰์‹œํ‚จ๋‹ค.

(๊ฐ•์ œ ํ‘ธ์‹œ ์•„๋‹˜!!)

 

 

push ํ›„์— ์›๊ฒฉ ์ €์žฅ์†Œ๋„ ์ตœ๊ทผ ์ปค๋ฐ‹์œผ๋กœ ์˜ฌ๋ผ๊ฐ„ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 


 

 

reset

๋˜๋Œ๋ฆฌ๊ธฐ

 

๋ช…๋ น์–ด : git reset --hard

 

 

๊ฐ•์ œ ํ‘ธ์‹œ

๋ช…๋ น์–ด : git push --force

 

 


 

 

์†Œ์Šค ํŠธ๋ฆฌ๋ฅผ ์ด์šฉํ•ด๋„ git ๋ช…๋ น์–ด๋ฅผ ์•Œ๊ณ  ์žˆ์–ด์•ผ

๋‚˜์ค‘์— ํŽธํ•˜๋‹ˆ ๋ช…๋ น์–ด๋„ ์•Œ์•„๋‘์ž

 

 


 

 

< ์ฐธ๊ณ  >

 

์ธํ”„๋Ÿฐ - git๊ณผ github

https://www.inflearn.com/course/git-and-github

 

git๊ณผ github - ์ธํ”„๋Ÿฐ

ํ˜•์ƒ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(Verson Control System) ์˜ ํ•œ ์ข…๋ฅ˜์ž…๋‹ˆ๋‹ค. ์ฃผ๋กœ ๊ฐœ๋ฐœ์ž๋“ค์ด ํ”„๋กœ๊ทธ๋žจ๊ณผ ๊ด€๋ จ๋œ ํŒŒ์ผ๋“ค์„ ์ €์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ž…๋ฌธ ๊ฐœ๋ฐœ ๋„๊ตฌ ๋ฒ„์ „๊ด€๋ฆฌ์‹œ์Šคํ…œ ๊นƒ(GIT) ์˜จ๋ผ์ธ ๊ฐ•์˜ github

www.inflearn.com

 

โ€ป ํ•ด๋‹น ๊ธ€์€ ์Šต๋“ ๋ชฉ์ ์œผ๋กœ ์ž‘์„ฑ๋œ ๊ธ€์ž…๋‹ˆ๋‹ค โ€ป

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€