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

[Git & GitHub] ์ด์ „ commit์œผ๋กœ ๋˜๋Œ๋ฆฌ๊ธฐ : revert ๋ณต์Šต ๋ฐ ์‘์šฉ

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

 

 

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

[Git & GitHub] ์ด์ „ commit์œผ๋กœ ๋˜๋Œ๋ฆฌ๊ธฐ : branch ์ƒ์„ฑ [Git & GitHub] ์ด์ „ commit์œผ๋กœ ๋˜๋Œ๋ฆฌ๊ธฐ : reset์˜ ๊ฐœ๋… [Git & GitHub] ๋ณ‘ํ•ฉ(merge)์œผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ์ถฉ๋Œ ํ•ด๊ฒฐํ•˜๊ธฐ [Git & GitHub] ๋ณ‘ํ•ฉ(merge) ๊ฐœ๋… ๋ฐ..

onelight-stay.tistory.com

 

์ €๋ฒˆ์— ๋˜๋Œ๋ฆฌ๊ธฐ์˜ ์ •์„์ธ 'revert'์— ๋Œ€ํ•ด์„œ ๋ฐฐ์›Œ๋ดค๋Š”๋ฐ

์ด๋ฒˆ์—๋Š” 'revert'๋ฅผ ๋‹ค์‹œ ํ•œ๋ฒˆ ๋ณต์Šตํ•ด๋ณด๊ณ 

์กฐ๊ธˆ ๋” ์‘์šฉํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ ธ๋ณด์ž.

 

 


 

 

'revert' ๋ณต์Šตํ•˜๊ธฐ

 

 

(1) ๋จผ์ € ๋ณต์Šตํ•˜๊ธฐ์— ์•ž์„œ์„œ ๊ธฐ์กด์˜ ํŒŒ์ผ์„ ํ›ผ์†์‹œํ‚ค์ง€ ์•Š๊ธฐ ์œ„ํ•ด์„œ

ํ…Œ์ŠคํŠธ์šฉ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•ด ์ค€๋‹ค.

(๋‚˜๋Š” 'test'๋ผ๋Š” ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ–ˆ๋‹ค.)

 

 

(2) 'test' ๋ธŒ๋žœ์น˜๋กœ ์ฒดํฌ์•„์›ƒ ํ•ด์ค€ ์ƒํƒœ๋กœ ์ƒˆ๋กœ์šด ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด

๋‚ด์šฉ์„ ์ž‘์„ฑํ•ด์ค€ ๋’ค์— ์ปค๋ฐ‹ํ•œ๋‹ค.

 

 

(3) ์œ„์— ์ฒ˜๋Ÿผ ๋‚ด์šฉ์„ ํ•œ ์ค„์”ฉ ์ถ”๊ฐ€ํ•ด ์ฃผ๋ฉด์„œ

์ปค๋ฐ‹ํ•˜๋Š” ๊ฒƒ์„ 3-4๋ฒˆ ์ •๋„ ๋ฐ˜๋ณตํ•œ๋‹ค.

 

 

(4) ์ปค๋ฐ‹์„ ๋‹ค ์™„๋ฃŒํ•œ ์ƒํƒœ์ด๋‹ค.

 

์ด๋•Œ, commit3 ์ปค๋ฐ‹์—์„œ commit2๋กœ ๋˜๋Œ๋ฆฌ๊ณ  ์‹ถ๋‹ค๋ฉด,

'์ปค๋ฐ‹ ๋˜๋Œ๋ฆฌ๊ธฐ' revert๋ฅผ ์ง„ํ–‰ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

(reset์˜ ๊ฒฝ์šฐ๋Š” ๋˜๋Œ๋ฆฌ๊ณ  ์‹ถ์€ ์ปค๋ฐ‹์„ ๋ˆŒ๋Ÿฌ์„œ ์ง„ํ–‰ํ–ˆ์ง€๋งŒ,

revert๋Š” ๋˜๋Œ๋ ค์•ผํ•˜๋Š” ์ปค๋ฐ‹์„ ๋ˆŒ๋Ÿฌ์•ผ ํ•˜๋ฏ€๋กœ ํ—ท๊ฐˆ๋ฆฌ์ง€ ์•Š๋Š”๋‹ค.)

 

 

(5) ์ง„ํ–‰ํ•˜๋ฉด commit3 ์ปค๋ฐ‹์ด ์‚ฌ๋ผ์ง€์ง€ ์•Š๊ณ ,

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

(์—๋””ํ„ฐ์—์„œ ์ž‘์„ฑ๋œ ํŒŒ์ผ์—์„œ๋„ ํ™•์ธ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.)

 

 


 

 

'revert' ์‘์šฉํ•˜๊ธฐ

 

 

(1) ๊ทธ๋ ‡๋‹ค๋ฉด ๋ฐ”๋กœ์ „ ๋‹จ๊ณ„๊ฐ€ ์•„๋‹Œ

commit3 ์ปค๋ฐ‹์—์„œ commit1 ์ปค๋ฐ‹์œผ๋กœ

๋˜๋Œ๋ฆฌ๊ณ  ์‹ถ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ?

 

 

(2) ๋จผ์ € commit3์—์„œ ์ปค๋ฐ‹ ๋˜๋Œ๋ฆฌ๊ธฐ revert๋ฅผ ์ง„ํ–‰์‹œํ‚จ๋‹ค.

 

์ง„ํ–‰์‹œํ‚ค๋ฉด commit2๋กœ ๋‚ด์šฉ์ด ๋˜๋Œ์•„ ๊ฐ€๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๊ทธ๋Ÿฐ ๋‹ค์Œ์— ํ˜„์žฌ commit2 ์ธ ์‹œ์ ์—์„œ ๋‹ค์‹œ ์ปค๋ฐ‹ ๋˜๋Œ๋ฆฌ๊ธฐ revert๋ฅผ ์ง„ํ–‰์‹œํ‚ค๋ฉด

commit1์œผ๋กœ ๋˜๋Œ์•„ ๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.

 

 

(3) ์—๋””ํ„ฐ์—์„œ ๋‚ด์šฉ์„ ํ™•์ธํ•˜๋ฉด ๋˜๋Œ์•„ ๊ฐ„ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ด๋•Œ, ์ฃผ์˜ํ•ด์•ผ ํ•  ์ ์€ commit3์—์„œ commit1์œผ๋กœ ๋Œ์•„๊ฐ„๋‹ค๊ณ  ํ•ด์„œ

๋ฐ”๋กœ commit1์—์„œ revert๋ฅผ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ

์ˆœ์ฐจ์ ์œผ๋กœ ์ง„ํ–‰์‹œ์ผœ์ค˜์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

 

 


 

 

'revert' ํ„ฐ๋ฏธ๋„

 

 

(1) ์ด๋ฒˆ์—๋Š” ํ„ฐ๋ฏธ๋„๋กœ ์ง„ํ–‰์„ ํ•ด๋ณด๋„๋ก ํ•˜์ž.

 

๋งŒ์•ฝ, commit3์—์„œ commit2๋กœ ์ด๋™ํ•˜๊ธฐ๋ฅผ ์›ํ•œ๋‹ค๋ฉด

'Git revert HEAD'๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ๋ฉด ๋œ๋‹ค.

 

์ด๋•Œ, HEAD๋Š” ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์ „ ๊ฐ€์žฅ ์ตœ์‹ ์˜ ์ƒํƒœ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

 

์ด๋ฒˆ์—๋Š” commit3์—์„œ commit1์œผ๋กœ ์ด๋™ํ•˜๋ ค ํ•œ๋‹ค๋ฉด

'Git revert HEAD HEAD~1'์„ ์ž…๋ ฅํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

 

HEAD~1 ์€ HEAD๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ ์ „ ๊ฐ€์žฅ ์ตœ์‹ ์ƒ ํƒœ์ธ

HEAD์˜ ์•„๋น ๋ผ๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.

(์ˆซ์ž๊ฐ€  ๋” ์ปค์งˆ์ˆ˜๋ก ๋’ค๋กœ ๊ฐ„๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.)

 

 

(2) ์›ํ•˜๋Š” revert๋ฅผ ์ž…๋ ฅํ•œ ๋’ค์— ์—”ํ„ฐ๋ฅผ ์น˜๋ฉด ์ด๋Ÿฐ ์ด์ƒํ•œ ์ฐฝ์ด ๋‚˜์˜ค๋Š”๋ฐ

commit3์„ ๋ฆฌ๋ฒ„ํŠธ ํ•˜๋Š” ๊ตฌ์—ญ์ด๋ผ๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.

 

๋จผ์ €, ESCํ‚ค๋ฅผ ๋ˆ„๋ฅธ ๋’ค์— ':wq'๋ฅผ ์ž…๋ ฅํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

 

๊ทธ๋Ÿฌ๋ฉด ๋น„์Šทํ•œ ์ฐฝ์ด ๋˜ ๋‚˜์˜ค๋Š”๋ฐ

์ด๋ฒˆ์—๋Š” commit2๋ฅผ ๋ฆฌ๋ฒ„ํŠธํ•˜๋Š” ๊ตฌ์—ญ์ด๋‹ˆ

์•„๊นŒ ์ „๊ณผ ๋˜‘๊ฐ™์ด ์ž…๋ ฅํ•ด ์ฃผ๋ฉด ๋œ๋‹ค.

 

 


 

 

'revert'์— ๋Œ€ํ•ด ์—ฐ์Šต์„ ๋‹ค ํ–ˆ๋‹ค๋ฉด,

๋‚ด์šฉ์˜ ํ˜ผ๋ž€์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๊ทธ๋ƒฅ ํ•ด๋‹น ๋ธŒ๋žœ์น˜๋ฅผ ์‚ญ์ œํ•˜๋ฉด ๋œ๋‹ค.

 

 


 

 

'revert' ๋ณต์Šต

 

'revert'๋กœ ์‰ฝ๊ฒŒ ์ปค๋ฐ‹์„ ๋˜๋Œ๋ฆด ์ˆ˜ ์žˆ๋‹ค.

 

'revert'๋กœ ๋˜๋Œ๋ฆฌ๋ฉด ์ด์ „ ์ปค๋ฐ‹์ด ๋‚จ๊ธฐ ๋•Œ๋ฌธ์— ํŽธ๋ฆฌํ•˜๋‹ค.

 

SourceTree์—์„œ๋Š” [์ปค๋ฐ‹ ์„ ํƒ] - [์šฐํด๋ฆญ] - [์ปค๋ฐ‹ ๋˜๋Œ๋ฆฌ๊ธฐ]

 

 

 

'revert' ์‘์šฉ

 

'revert'๋กœ ์—ฌ๋Ÿฌ ์ปค๋ฐ‹์„ ๋˜๋Œ๋ฆฌ๊ธฐ ์œ„ํ•ด์„ 

์ตœ์‹ ๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ 'revert'๋ฅผ ๋ฐ˜๋ณต ์ ์šฉํ•ด์ค€๋‹ค.

 

 

'revert' ๋ช…๋ น์–ด

 

git revert HEAD

 

git revert HEAD HEAD~1

 

 


 

 

revert์˜ ๊ฐœ๋…๋„ ์ค‘์š”ํ•˜์ง€๋งŒ

์‹ค์งˆ์ ์œผ๋กœ๋Š” ์‘์šฉ์ด ๊ต‰์žฅํžˆ ๋งŽ์ด ์“ฐ์ด๊ณ  ์ค‘์š”ํ•  ๊ฒƒ ๊ฐ™๋‹ค.

 

์ž˜ ์ตํ˜€๋ณด์ž.

 

 


 

 

< ์ฐธ๊ณ  >

 

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

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

 

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

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

www.inflearn.com

 

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

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€