Design-loving front-end engineer
Ryong
Design-loving front-end engineer
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
    • Framework
    • React
      • Concept
      • Library
      • Hook
      • Component
      • Test
    • NodeJS
    • Android
      • Concept
      • Code
      • Sunflower
      • Etc
    • Flutter
      • Concept
      • Package
    • Web
    • Web
    • CSS
    • Language
    • JavaScript
    • TypeScript
    • Kotlin
    • Dart
    • Algorithm
    • Data Structure
    • Programmers
    • Management
    • Git
    • Editor
    • VSCode
    • Knowledge
    • Voice
Design-loving front-end engineer

Ryong

[ Git ]  Information
Git

[ Git ] Information

2022. 8. 4. 15:35

๐Ÿ”ด  branch

 

[GIT] โšก๏ธ Branch ์ •๋ฆฌ (git branch / checkout / switch / merge / rebase)

Git Branch(๋ธŒ๋žœ์น˜) ๋ž€? SW๋ฅผ ๊ฐœ๋ฐœํ•  ๋•Œ, ๊นƒ์˜ ๋ธŒ๋žœ์น˜๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•œ๋‹ค๋ฉด ๊ฐ™์€ ํŒ€๋ผ๋ฆฌ ์ž‘์—… ํ”„๋กœ์ ํŠธ๋ฅผ ๊ณต์œ ํ•˜๊ณ  ๊ฐ™์ด ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ค. ๋˜ ํ˜ผ์ž์„œ ์ž‘์—…ํ•˜๋”๋ผ๋„ ์—ฌ๋Ÿฌ ๋ฒ„์ „์„ ๋งŒ๋“ค์–ด ๋†“์„ ๋•Œ,

inpa.tistory.com

branch๋Š” ํŠน์ • commit์— ๋Œ€ํ•œ ์ฐธ์กฐ์ด๊ธฐ ๋•Œ๋ฌธ์— branch๋ฅผ ๋งŽ์ด ๋งŒ๋“ค์–ด๋„ ๋ฉ”๋ชจ๋ฆฌ๋‚˜ ๋””์Šคํฌ ๊ณต๊ฐ„์— ๋ถ€๋‹ด์ด ๋˜์ง€ ์•Š๋Š”๋‹ค.

๋”ฐ๋ผ์„œ, ์ž‘์—…์„ ์ปค๋‹ค๋ž€ branch๋กœ ๋งŒ๋“ค๊ธฐ๋ณด๋‹ค๋Š” ์ž‘์€ ๋‹จ์œ„๋กœ ์ž˜๊ฒŒ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

branch๋Š” "ํ•˜๋‚˜์˜ commit๊ณผ ๊ทธ ๋ถ€๋ชจ commit๋“ค์„ ํฌํ•จํ•˜๋Š” ์ž‘์—… ๋‚ด์—ญ"์ด๋ผ๊ณ  ๊ธฐ์–ตํ•˜์ž.

 

option

 
// ํ˜„์žฌ branch ํ™•์ธํ•˜๊ธฐ
git branch

// ์ƒ์„ธํ•œ ์ •๋ณด๋ฅผ ํฌํ•จํ•œ ํ˜„์žฌ branch ํ™•์ธํ•˜๊ธฐ
git branch -v

// branch ์ƒ์„ฑ
git branch [New Branch Name] [Diverge Branch Name]

// ํ˜„์žฌ HEAD branch ์ด๋™ํ•˜๊ธฐ
git checkout [Move Branch Name]

// branch ์‚ญ์ œํ•˜๊ธฐ
git branch -D [Delete Branch Name]

// ๋กœ์ปฌ ๋ถ„๊ธฐ๋ฅผ ์‚ญ์ œํ–ˆ์Œ์—๋„ ์›๊ฒฉ ๋ถ„๊ธฐ๊ฐ€ ๋‚จ์•„์žˆ์„ ๋•Œ
git remote prune origin

// branch ์ด๋ฆ„ ๋ณ€๊ฒฝํ•˜๊ธฐ
git branch -m [Current Branch Name] [Modified Branch Name]

// branch ์ƒ์„ฑ๊ณผ ๋™์‹œ์— checkout
git checkout -b [New Branch Name]

// branch commit ์œ„์น˜ ์ด๋™
git branch -f [Moved Branch Name] [Target Branch Name]

 

๐ŸŸ   merge

merge๋Š” ๋‘ ๊ฐœ์˜ ๋ถ€๋ชจ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ํŠน๋ณ„ํ•œ commit์„ ๋งŒ๋“ค์–ด๋‚ธ๋‹ค.

์ด๋Š” ํ•œ ๋ถ€๋ชจ์˜ ๋ชจ๋“  ์ž‘์—…๋‚ด์—ญ๊ณผ ๋‚˜๋จธ์ง€ ๋ถ€๋ชจ์˜ ๋ชจ๋“  ์ž‘์—…, ๊ทธ๋ฆฌ๊ณ  ๋‘ ๋ถ€๋ชจ์˜ ๋ชจ๋“  ๋ถ€๋ชจ๋“ค์˜ ์ž‘์—…๋‚ด์—ญ์„ ํฌํ•จํ•œ๋‹ค.

 

๐ŸŸก  rebase

rebase๋Š” commit๋“ค์„ ๋ชจ์•„์„œ ๋ณต์‚ฌํ•œ ๋’ค, ๋‹ค๋ฅธ ๊ณณ์— ๋–จ๊ถˆ ๋†“๋Š”๋‹ค.

commit์˜ ํ๋ฆ„์„ ๋ณด๊ธฐ ์ข‹๊ฒŒ ํ•œ ์ค„๋กœ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

 

๐ŸŸข  HEAD

HEAD๋Š” ํ˜„์žฌ checkout ๋œ commit์„ ๊ฐ€๋ฆฌํ‚จ๋‹ค. ์ฆ‰, ํ˜„์žฌ ์ž‘์—… ์ค‘์ธ commit์„ ๋งํ•œ๋‹ค.

 

๐Ÿ”ต  Relative Reference

ํ•ด์‹œ๋กœ commit์„ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ฒƒ์ด ๋ถˆํŽธํ–ˆ๋˜ ๊ฒƒ์„ ํ•ด์†Œ์‹œ์ผœ์ค€๋‹ค.

    โšช  ์บ๋Ÿฟ์—ฐ์‚ฐ์ž(^)  ํ•œ ๋ฒˆ์— ํ•œ commit ์œ„๋กœ ์˜ฌ๋ผ๊ฐ„๋‹ค.

    โšช  ~<num>  ํ•œ ๋ฒˆ์— num commit ์œ„๋กœ ์˜ฌ๋ผ๊ฐ„๋‹ค.

 

๐ŸŸฃ  reset & revert

 

[GIT] โšก๏ธ git add / commit / push ์ทจ์†Œํ•˜๊ธฐ ๐Ÿ’ฏ ์ •๋ฆฌ

๊ธฐ์กด ์ฝ”๋“œ๋ฅผ ๋‚ ๋ฆฌ๊ณ  ์‹ถ์ง€์•Š์œผ๋ฉด origin(๊นƒํ—™)์—๋‹ค๊ฐ€ push๋ฅผ ํ•ด๋†“๊ณ  ๋ฆฌ์…‹ํ•ด์•ผ ์›๊ฒฉ์„œ๋ฒ„์— ๋‚ด๊ฐ€ ์ž‘์—…ํ•œ๊ฒŒ ๋‚จ๋Š”๋‹ค. ๋กœ์ปฌ์—์„  ๋‹ค ์‚ฌ๋ผ์ง€๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. git add ์ทจ์†Œํ•˜๊ธฐ (ํŒŒ์ผ ์ƒํƒœ๋ฅผ Unstage๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ) ์•„

inpa.tistory.com

reset

ํ˜„์žฌ๊นŒ์ง€ ์ž‘์—…ํ–ˆ๋˜ ์ด๋ ฅ๋“ค์„ ๋ชจ๋‘ ์ง€์šฐ๊ณ  ์›ํ•˜๋Š” commit ์‹œ์ ์œผ๋กœ ๋Œ์•„๊ฐ„๋‹ค.

commit ์ด๋ ฅ๋“ค์„ ์ง€์šฐ๊ธฐ ๋•Œ๋ฌธ์— ์›๊ฒฉ repository์™€ history๊ฐ€ ๊ผฌ์ผ ์ˆ˜๋„ ์žˆ๋‹ค.

 
// commit ๋œ ํŒŒ์ผ๋“ค์„ staging area๋กœ ๋Œ๋ ค๋†“์Œ (commit ํ•˜๊ธฐ ์ „ ์ƒํƒœ)
git reset --soft [Commit ID]

// commit ๋œ ํŒŒ์ผ๋“ค์„ working directory๋กœ ๋Œ๋ ค๋†“์Œ (add ํ•˜๊ธฐ ์ „ ์ƒํƒœ)
git reset --mixed [Commit ID]

// commit ๋œ ํŒŒ์ผ๋“ค ์ค‘ tracked ํŒŒ์ผ๋“ค์„ working directory์—์„œ ์‚ญ์ œํ•œ๋‹ค.
git reset --hard [Commit ID]

// ํ˜„์žฌ๋กœ๋ถ€ํ„ฐ ์›ํ•˜๋Š” ๋งŒํผ์˜ commit์ด ์‚ญ์ œ๋œ๋‹ค.
git reset HEAD~10

// ๊ฐ€์žฅ ์ตœ๊ทผ commit์ด ์ทจ์†Œ๋œ๋‹ค.
git reset HEAD^

 

revert

ํ˜„์žฌ๊นŒ์ง€ ์ž‘์—…ํ–ˆ๋˜ ์ด๋ ฅ๋“ค์€ ๊ทธ๋Œ€๋กœ ๋†”๋‘” ์ฑ„๋กœ ์›ํ•˜๋Š” commit ์‹œ์ ์œผ๋กœ ๋Œ์•„๊ฐ„๋‹ค.

commit ์ด๋ ฅ๋“ค์„ ์ง€์šฐ์ง€ ์•Š์€ ์ฑ„ ์ƒˆ๋กœ commit์„ ํ•˜๋Š” ๊ฐœ๋…์ด๋ฏ€๋กœ history๊ฐ€ ์œ ์ง€๋œ๋‹ค.

 
// ํ•ด๋‹น commit์œผ๋กœ ๋Œ์•„๊ฐ„๋‹ค.
git revert [Commit ID]

 

๐ŸŸค  cherry-pick

 

[GIT] โšก๏ธ ์›ํ•˜๋Š” commit ๊ฐ€์ ธ์˜ค๊ธฐ (git cherry-pick)

์›ํ•˜๋Š” commit ๊ฐ€์ ธ์˜ค๊ธฐ git cherry-pick cherry pick์ด๋ž€, ์ฒด๋ฆฌ ํ•œ ๋ฐ”๊ตฌ๋‹ˆ์—์„œ ์ œ์ผ ์ข‹์€ ์ฒด๋ฆฌ๋งŒ ๊ณ ๋ฅด๋Š” ๊ฒƒ์—์„œ ์œ ๋ž˜ํ•œ ํ‘œํ˜„์ด๋ผ๊ณ  ํ•œ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ๋Š” ์ œ์ผ ์ข‹์€ ๊ฑธ ์„ ๋ณ„ํ•œ๋‹ค๋Š” ๋œป์œผ๋กœ ์“ฐ์ธ๋‹ค. git์„

inpa.tistory.com

 

๐Ÿ”ด  stash

 

[GIT] โšก๏ธ ์ปค๋ฐ‹ํ•˜์ง€์•Š๊ณ  ๋ธŒ๋žœ์น˜ ๊ฐ„ ์ด๋™ (git stash)

์Šคํƒœ์‹œ(Stash) ํŒŒ์ผ์˜ ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ์ผ์‹œ์ ์œผ๋กœ ๊ธฐ๋กํ•ด๋‘๋Š” ์˜์—ญ์ด๋‹ค. ์•„์ง ๋งˆ๋ฌด๋ฆฌํ•˜์ง€ ์•Š์€ ์ž‘์—…์„ ์Šคํƒ์— ์ž ์‹œ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์•„์ง ์™„๋ฃŒํ•˜์ง€ ์•Š์€ ์ผ์„ commitํ•˜์ง€ ์•Š๊ณ  ๋‚˜์ค‘์—

inpa.tistory.com

 

๐ŸŸ   Gitmoji

 

[GIT] โšก๏ธ Gitmoji ์‚ฌ์šฉ๋ฒ• (Gitmoji-cli)

Gitmoji๋ž€? Gitmoji = git + emoji ์ž…๋‹ˆ๋‹ค. ๊ธ€์„ ์“ธ ๋•Œ ์ด๋ชจ์ง€๋ฅผ ์ด์šฉํ•˜๋ฉด, ๋‚˜์ค‘์— ๊ธ€์„ ์ฝ์„๋•Œ ๋ช…ํ™•ํ•ฉ๋‹ˆ๋‹ค. ์ปค๋ฐ‹ํ•  ๋•Œ๋„ ์ด๋ชจ์ง€๋ฅผ ์ด์šฉํ•œ๋‹ค๋ฉด, ๋‚ด์šฉ์„ ํ•œ ๋ˆˆ์— ์•Œ์•„๋ณด๊ธฐ ๋” ์‰ฝ๊ฒ ์ฃ . carloscuesta/gitmoji An emo..

inpa.tistory.com


๐ŸŸก  tag

 

[GIT] โšก๏ธ ํƒœ๊ทธ ๊ธฐ๋Šฅ ๋ฐ ์‚ฌ์šฉ๋ฒ• (git tag)

git ํƒœ๊ทธ(Tag) git์—์„œ ํƒœ๊ทธ๋ž€ ์šฐ๋ฆฌ๊ฐ€ ์•Œ๊ณ  ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ฌด์–ธ๊ฐ€ ํ‘œ์‹œ๋ฅผ ํ•ด๋‘๊ธฐ ์œ„ํ•œ ํƒœ๊น… ๊ธฐ๋Šฅ์„ ์œ„ํ•œ ๊ฒƒ์œผ๋กœ, ํŠน์ • ์ปค๋ฐ‹์„ ํƒœ๊ทธํ•ด ๋‘๋Š” ๊ฒƒ์ด๋‹ค. ํŠน์ • ์ปค๋ฐ‹์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋งํฌ๋ผ๊ณ  ์ƒ๊ฐํ•ด๋„ ์ข‹๋‹ค. ์ด

inpa.tistory.com

 

๐ŸŸข  with remote storage

 

[GIT] โšก๏ธ ๊นƒํ—™ - ์›๊ฒฉ ์ €์žฅ์†Œ ์—ฐ๋™ ๐Ÿ’ฏ ์ •๋ฆฌ (git remote / push / pull)

GIT ์›๊ฒฉ ์ €์žฅ์†Œ ์—ฐ๋™ Git์„ ์ œ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์›๊ฒฉ ์ €์žฅ์†Œ๊ฐ€ ํ•„์š”ํ•˜๋‹ค. Remote repository(์›๊ฒฉ ์ €์žฅ์†Œ)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ”„๋กœ์ ํŠธ ์ž‘์—…๋ฌผ์„ ์•ˆ์ „ ํ•˜๊ฒŒ ๋ฐฑ์—…ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋งŽ์€ ์‚ฌ๋žŒ๋“ค๊ณผ ํ˜‘์—…

inpa.tistory.com

 

๐Ÿ”ต  ์‹œ๊ฐํ™”

 

Learn Git Branching

An interactive Git visualization tool to educate and challenge!

learngitbranching.js.org

 

๐ŸŸฃ  Reference

 

[๊นŒ๋ง] Git ๋ชฉ๋ก

๋ณธ ๋ธ”๋กœ๊ทธ์— ์ž‘์„ฑ๋œ Git ๊ด€๋ จ ๋‚ด์šฉ URL์„ ์ •๋ฆฌํ•œ ๊ณณ์ž…๋‹ˆ๋‹ค. ๋ชฉ๋ก [Git] "git add -p" ๋ฅผ ํ™œ์šฉํ•˜๋Š” ์ด์œ  [Git] .gitignore ์„ค์ • [Git] learngitbranching ๋‹ต์•ˆ ๋ฐ ํ’€์ด - 1 [Git] learngitbranching ๋‹ต์•ˆ ๋ฐ ํ’€์ด -..

zoosso.tistory.com

 

 

์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)
    Design-loving front-end engineer
    Design-loving front-end engineer
    ๋””์ž์ธ์— ๊ด€์‹ฌ์ด ๋งŽ์€ ๋ชจ๋ฐ”์ผ ์•ฑ ์—”์ง€๋‹ˆ์–ด Ryong์ž…๋‹ˆ๋‹ค.

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”