[Git] github ๋ฟŒ์‹œ๊ธฐ ๐Ÿš€๐Ÿš€๐Ÿš€

4111 ๋‹จ์–ด githubgitgit

๊นƒํ—ˆ๋ธŒ ๋˜๋Œ๋ฆฌ๊ธฐ

๋˜๋Œ๋ ค๋ณด์ž์•„

์ €๋ฒˆ๊นŒ์ง€๋Š” ์ด์ œ ๊นƒ์—์„œ ์ž์œ ๋กญ๊ฒŒ ๋Œ์•„๋‹ค๋‹ˆ๋Š” ๊ธฐ๋Šฅ์„ ์ข€ ์•Œ์•„๋ดค๋‹ค๋ฉด
์ด๋ฒˆ์—๋Š” ๋Œ์•„๋‹ค๋‹ˆ๋Š” ๊ฒƒ์—์„œ ์ข€๋” ํ™œ๋™์„ ํ•ด๋ณผ๊ฑด๋ฐ์š”

ํ˜น์‹œ๋‚˜ ์‹ค์ˆ˜๋ฅผ ํ•ด์„œ ์˜ฌ๋ฆฌ๋ฉด ์•ˆ๋ ๊ฑธ ์˜ฌ๋ ธ๋‹ค๊ฑฐ๋‚˜,
์•„์ง ์™„์ „ํ•˜๊ฒŒ ๋˜์ง€ ์•Š์•˜๋Š”๋ฐ ์˜ฌ๋ ค๋ฒ„๋ฆฌ๊ฒŒ ๋œ๊ฒฝ์šฐ
๋ญ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์„ํ…๋ฐ... ์ด๋Ÿฐ๊ฒฝ์šฐ์— ๊นƒํ—ˆ๋ธŒ์— ์˜ฌ๋ฆฐ๊ฑธ ๋‹ค์‹œ ๋˜๋Œ๋ฆฌ๋Š” ๋ฒ•์„ ๋ฐฐ์›Œ๋ณผ๊ฒŒ์š”

git reset

๋ง๊ทธ๋Œ€๋กœ ๋ฆฌ์…‹์‹œํ‚ค๋Š” ๊ฒ๋‹ˆ๋‹ค.
๋ช…๋ น์–ด๋ถ€ํ„ฐ ๋ณด๋ฉด

git reset --soft, --mixed, --hard

๊ฐ•์กฐํ•ด ๋†“์€๊ณณ ์ € ๋ถ€๋ถ„์„ ๋ณด์‹œ๋ฉด ๋ฏน์Šค๋„ ์žˆ๊ณ , ์†Œํ”„ํŠธ๋„ ์žˆ๊ณ , ํ•˜๋“œ๋„ ์žˆ๋Š”๋ฐ

์ „ ๊ฐœ์ธ์ ์œผ๋กœ mixed - soft - hard ์ˆœ์œผ๋กœ ์ƒ๊ฐ์ด ๋“ค๋”๋ผ๊ณ ์š” ๊ฑ์•ฝ์ด ๐Ÿ˜

์ฐจ์ด์  ๋ถ€ํ„ฐ ๋ณด๋ฉด

์„ธ๊ฐœ์˜ ์ฐจ์ด์ 

mixed reset

์ด ์นœ๊ตฌ๋Š” ๋ฆฌ์…‹์„ ํ•˜๊ฒŒ๋˜๋ฉด ํ‘ธ์‹œํ–ˆ๋˜ ๋‚ด์šฉ์— ์Šคํ…Œ์ด์ง•์ด ๋˜์žˆ์ง€ ์•Š์€์ƒํƒœ
์ฆ‰ git add ๋ฅผ ํ•˜์ง€ ์•Š์„ ์ƒํƒœ๋กœ ๋Œ์•„๊ฐ€์š”

ํ•˜๋“œ ๋ฆฌ์…‹๊ณผ ๋‹ค๋ฅธ์ ์ด ์žˆ๋‹ค๋ฉด ๋ณ€๊ฒฝํ•œ ํŒŒ์ผ์€ ๊ทธ๋Œ€๋กœ ๋†”๋‘๋Š” ๊ฑฐ๊ณ 

์†Œํ”„ํŠธ ๋ฆฌ์…‹๊ณผ ๋‹ค๋ฅธ์ ์ด ์žˆ๋‹ค๋ฉด ๋‚ด๊ฐ€ ๊ฐ™์€ ํŒŒ์ผ์— ์ž‘์—…์„ ํ•˜๊ณ  ์žˆ์—‡๋‹ค๋ฉด
์Šคํ…Œ์ด์ง•์ด ๋˜์–ด์žˆ์ง€ ์•Š์€ ์ƒํƒœ๋กœ ๋˜๋Œ๋ ค ๋†“์Œ

soft reset

์†Œํ”„ํŠธ ๋ฆฌ์…‹์˜ ๊ฒฝ์šฐ๋Š” ํ‘ธ์‹œ๋Š” ์•ˆํ•œ์ƒํƒœ
ํ•˜์ง€๋งŒ git add๋Š” ํ•œ ์ƒํƒœ ์ฆ‰ ์Šคํ…Œ์ด์ง•์ด ๋˜์–ด์žˆ๋Š” ์ƒํƒœ๋กœ ๋Œ์•„์˜ค๋Š” ๊ฑฐ์ฃ 

๊ธ€์„ ๋ง‰ ์“ฐ๋‹ค๊ฐ€ ์œ„์—์„œ ์—ฐ๋ฝ์ด ์™€์š”

"๋ฒ„์ „ ๋ฐ”๊พธ๊ธฐ๋กœ ํ–ˆ์œผ๋‹ˆ๊นŒ ์˜ˆ์ „๊ฑธ๋กœ ์ž‘์—…ํ•ด"
๋‚˜์ค‘์— ๋˜ ๋ง ๋ฐ”๊ฟ€์ง€๋„ ๋ชจ๋ฅด๋‹ˆ๊นŒ ๋‚ด๊ฐ€ ์ž‘์—…ํ•œ ๋‚ด์šฉ์€ ๋‚จ๊ฒจ ๋†“๋Š” ๊ฑฐ์ฃ 
๊ทธ๋Ÿฌ๋ฉด ์ง€๊ธˆ ์ž‘์—…ํ•˜๋˜๊ฑธ ๋‹ค๋ฅธ๋ฐ ์ €์žฅํ•ด ๋†“๊ณ  ์˜ˆ์ „๊ฑธ๋กœ ํ•ด๋„ ๋˜๋Š”๊ฑฐ์—์š”

์˜ˆ์ „ ์ž‘์—…์ด๋ž‘ ํ˜„์žฌ ๋‚ด๊ฐ€ ๋งŒ์ง€๊ณ ์žˆ๋Š” ์ž‘์—…์ด๋ž‘ ๊ฒน์น˜์ง€ ์•Š๊ฒŒ ํ•ด์ฃผ๋Š”๊ฒŒ ์†Œํ”„ํŠธ ๋ฆฌ์…‹์ž…๋‹ˆ๋‹ค.

hard reset

ํ•˜๋“œ๋ฆฌ์…‹์€ ๋‹ค ํ•„์š”์—†๊ณ  ์˜ˆ์ „ ์ƒํƒœ๋กœ ๋Œ๋ฆด๋•Œ ์‚ฌ์šฉํ•˜๋ฉด๋˜์š”
์ง€๊ธˆ ์ž‘์—…ํ•œ ๊ฒƒ๋„, ์ „์— ์ปค๋ฐ‹ํ•œ ๋‚ด์šฉ๋„ ํ•„์š” ์—†์„๊ฒฝ์šฐ

๋จผ์ € hardํ•œ ๋…€์„๋ถ€ํ„ฐ ๋ณผ๊ฒŒ์š”

hardํ•˜๊ฒŒ ๋ฆฌ์…‹ํ•˜๊ธฐ


๊นƒ ๋กœ๊ทธ๋กœ ๋ณด๋ฉด HEAD๊ฐ€ ํ˜„์žฌ ๋‚˜์˜ ์œ„์น˜๋‹ˆ๊นŒ ์ œ์ผ ์œ„์—์žˆ์ฃ 

git reset --hard HEAD^

๋ช…๋ น์–ด์—์„œ HEAD ๋’ค์— ^ ๊ฐฏ์ˆ˜์— ๋”ฐ๋ผ์„œ ๋ช‡์นธ์„ ๋’ค๋กœ๊ฐˆ์ง€ ๊ฒฐ์ • ํ•ฉ๋‹ˆ๋‹ค.

์œ„ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅ ํ•˜์‹œ๋ฉด
์—ฌ๊ธฐ์„œ ์•„๋ž˜ ๋ณด์‹œ๋ฉด ๋ฐ”๋กœ ์ „ ์ƒํ™ฉ์œผ๋กœ ์˜จ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ

๊นƒํ—ˆ๋ธŒ ํŽ˜์ด์ง€๋กœ ๊ฐ€์„œ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋ณด์‹œ๋ฉด ์•„์ง ๋ฆฌ์…‹ํ•˜๊ธฐ ์ „์˜ ์ปค๋ฐ‹์ด ๋‚จ์•„์žˆ์–ด์š”

์ด ์ƒํ™ฉ์—์„œ ๋ฐ”๋กœ ์ปค๋ฐ‹์„ ํ• ๋ ค๋ฉด ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒจ์š”

๋ธ”๋ž™์œ„๋„์šฐ์˜ ์„ฑ์ธ๋ฒ„์ ผ์„ ๋ฐ˜๋Œ€ํ•˜๋Š” ์„ธ๋ ฅ์ด ์žˆ๋Š”๊ฑฐ์ฃ 
์„ ํƒํ•ด์•ผ ๋ฉ๋‹ˆ๋‹ค.

  1. ์„ฑ์ธ๋ฒ„์ „์œผ๋กœ ์˜ฌ๋ฆฌ๊ฒ ๋‹ค -> git pull
  2. ์•„๋‹ˆ๋‹ค ๊ณผ๊ฑฐ ๋ฒ„์ „์œผ๋กœ ์˜ฌ๋ฆฌ๊ฒ ๋‹ค -> --force

์šฐ๋ฆฌ๋Š” ๊ณผ๊ฑฐ ๋ฒ„์ „์œผ๋กœ ๋‹ค์‹œ ๋˜๋Œ๋ฆฌ๋Š”๊ฑธ ๋ณผ๊ฑฐ๋‹ˆ๊นŒ ๋‹ค ๋ฐ€์–ด๋ฒ„๋ฆฌ์ฃ 

git push origin master --force


์ด๋ ‡๊ฒŒ ํฌ์Šค๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์˜ฌ๋ ค๋ฒ„๋ฆฌ๋ฉด ๋ฐ”๋กœ ์˜ฌ๋ฆด ์ˆ˜ ์žˆ์–ด์š”

force๊ฐ€ ๋•Œ์— ๋”ฐ๋ผ์„œ๋Š” ์•ˆ์ข‹๊ฒŒ ๋ณด๊ธฐ๋„ ํ•˜๋Š”๋ฐ
์ด ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ๋Š” ์ข€ ๋” ์•Œ์•„๋ณด๊ณ  ์ •๋ฆฌ ํ•ด๋ณผ๊ฒŒ์š”

mixed ํ•˜๊ฒŒ ๋ฆฌ์…‹ํ•˜๊ธฐ

์ด mixed ๋ฆฌ์…‹์€ ์‚ฌ์‹ค ๊ทธ๋ ‡๊ฒŒ ๋งŽ์ด ์“ฐ์ด์ง€ ์•Š์„๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐ์ด ๋˜๋Š”๊ฒŒ
์ž‘์—…ํ•˜๋‹ค๊ฐ€ ์˜ˆ์ „๊ฑธ๋กœ ๋Œ์•„์˜ค๋ฉด ์•„์˜ˆ ๋ฆฌ์…‹ํ•ด์„œ ๋‹ค์‹œํ•˜๊ฑฐ๋‚˜,
์ง€๊ธˆ ์ž‘์—…ํ•˜๋˜ ๊ฑธ ๋ณด๋ฉด์„œ ๊ณ ์น ๊ณ  ๊ณ ์น˜๊ฑฐ๋‚˜ ํ•  ๊ฒƒ ๊ฐ™์•„์„œ์ž…๋‹ˆ๋‹ค.

๋‹ค์‹œ ๋ธ”๋ž™์œ„๋„์šฐ๋กœ ๋Œ์•„์™€์„œ

git reset --mixed HEAD^ 

์„ฑ์ธ๋ฒ„์ „๊ณผ ๊ณผ๊ฑฐ๋ฒ„์ „์œผ๋กœ ๋ณผ๊ฒŒ์š” ์•„๊นŒ ์—†์•ณ๋˜ ์„ฑ์ธ๋ฒ„์ „์„ ๋‹ค์‹œ ํ‘ธ์‹œ ํ•œ ์ƒํƒœ์—์š”

๋‹ค์‹œ git status๋ฅผ ๋ณด์‹œ๋ฉด

์Šคํ…Œ์ด์ง•์ด ๋˜์–ด์žˆ์ง€ ์•Š์€ ์ƒํƒœ๋กœ ๋Œ์•„์™€ ์žˆ๋Š”๊ฑธ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

soft ํ•˜๊ฒŒ ๋ฆฌ์…‹ํ•˜๊ธฐ

๋งˆ์ง€๋ง‰์ž…๋‹ˆ๋‹ค

์šฐ์„  like github ๋ผ๋Š” ์ปค๋ฐ‹์„ ํ•ด์„œ ํ‘ธ์‹œํ–ˆ์–ด์š”

ํ…์ŠคํŠธํŒŒ์ผ์—๋Š” ์š”๋ ‡๊ฒŒ ์ถ”๊ฐ€ ํ–ˆ๊ตฌ์š”

์—ฌ๊ธฐ์„œ ์ž‘์—…์„ํ•˜๋‹ค๊ฐ€ ๋ฆฌ์…‹์„ ํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”?
์•„๋ž˜ ์ฒ˜๋Ÿผ ์ ์–ด ๋†“๊ณ  ๋ฆฌ์…‹์„ ์‹คํ–‰ํ•ด ๋ณผ๊ฒŒ์š”

๊ฒฐ๊ณผ๋Š”

์ด๋ ‡๊ฒŒ ๋‚ด๊ฐ€ ์ž‘์—…ํ•˜๊ณ  ์žˆ๋Š” ํŒŒ์ผ์€ ๊ทธ๋Œ€๋กœ ์žˆ๊ณ ,
์Šคํ…Œ์ด์ง•์ด ๋˜์–ด์žˆ๋Š” ์ƒํƒœ๋กœ ๋ฆฌ์…‹์ด ๋˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ด์ƒํƒœ๋กœ git add ํ•ด๋ฒ„๋ฆฌ๋ฉด ๋‚ด๊ฐ€ ์ž‘์—…ํ•˜๋˜ ๊ฑธ๋กœ ํ‘ธ์‹œ๋ฅผ ํ•  ์ˆ˜ ์žˆ์–ด์š”

๋

๊ธ€์„ ์ ์œผ๋ฉด์„œ ๋˜๊ฒŒ ํ—ท๊ฐˆ๋ฆฌ๋Š” ๋ถ€๋ถ„๋„ ๋งŽ์•˜๊ณ ...
์ด๊ฒŒ ์Šคํฌ๋ฆฐ์ƒท์ด ๋‹ค ๋˜‘๊ฐ™์€ ๋ชจ์–‘์ด๋‹ค ๋ณด๋‹ˆ๊นŒ ๐Ÿ˜
๋ณด๋ฉด์„œ ์—„์ฒญ ํ—ท๊ฐˆ๋ ท๋Š”๋ฐ ํ˜น์‹œ๋‚˜ ์ž˜๋ชป๋œ ๋ถ€๋ถ„์€ ์ง€์ .. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

๋ฆฌ์…‹ ํ•˜์‹ค๋•Œ๋Š” ํ•ญ์ƒ ํ™•์ธํ•˜์‹œ๊ณ , ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์–ด๋–ป๊ฒŒ ๋˜์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ฉด์„œ
์ง„ํ–‰ํ•ด์ฃผ์„ธ์š”

์ด๋ฒˆ ๋ธ”๋กœ๊ทธ๋Š” ๊ธ€์ด ๋˜๊ฒŒ ๊ธด๋ฐ , ๊ธด ๊ธ€ ์ฝ์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค โค๏ธโค๏ธ

๊นƒํ—ˆ๋ธŒ์— ๊ด€๋ จํ•œ ๋ธ”๋กœ๊ทธ๋Š” ์—ฌ๊ธฐ๊นŒ์ง€๋งŒ ์ง„ํ–‰ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค

์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ