๐Ÿ’ฌ CI · CD/Git : ๊นƒ

[Git] cmd command๋กœ git ์ด์šฉํ•˜๊ธฐ

mxnxeonx 2025. 2. 5. 12:47
728x90
728x90
๋”๋ณด๊ธฐ

git bash ์“ฐ๋Š” ๊ฑฐ ์•„๋‹ˆ๋ฉด IDE์— ์žˆ๋Š” UI๋กœ ์ด์šฉํ–ˆ์—ˆ๋Š”๋ฐ, discard change๋˜๊ณ  ํ•œ ๋ฒˆ ๋‹ค ๋‚ ๋ ค๋จน์–ด์„œ ... cmd๋กœ ์“ฐ๋ ค๊ณ  ์ •๋ฆฌํ•จ

 

Git cmd

status : ํ˜„์žฌ ๋ธŒ๋žœ์น˜, ํŒŒ์ผ ์ˆ˜์ •์‚ฌํ•ญ, ์ปค๋ฐ‹ ๊ฑด์ˆ˜ ๋“ฑ ์ƒํƒœ ํ™•์ธ

$ git status

 

branch : ๋ธŒ๋žœ์น˜(repository ํ•˜์œ„ ์ €์žฅ์†Œ) ๊ด€๋ จ

# ํ˜„์žฌ branch ๋ฆฌ์ŠคํŠธ ์กฐํšŒ
$ git branch -a

 

checkout : ๋ธŒ๋žœ์น˜ ์ด๋™

# ๋ธŒ๋žœ์น˜ ์ด๋™
$ git checkout [๋ธŒ๋žœ์น˜๋ช…]

# ์—†๋Š” ๋ธŒ๋žœ์น˜๋ช… ์ž…๋ ฅ ์‹œ ์ž๋™ ์ƒ์„ฑ
$ git checkout -b [๋ธŒ๋žœ์น˜๋ช…]
# JIRA ๋“ฑ์—์„œ ์ƒ์„ฑํ•œ ์›๊ฒฉ Branch์™€ ์—ฐ๋™ํ•˜๋ ค๋ฉด
$ git fetch origin
$ git checkout -b {์ƒ์„ฑํ•œ ๋ธŒ๋žœ์น˜๋ช…}

 

add : ๋ณ€๊ฒฝ ๋‚ด์šฉ staging ์˜์—ญ์œผ๋กœ ์ด๋™

# ๋ชจ๋“  ํŒŒ์ผ ์ด๋™ ์‹œ . ์ž…๋ ฅ
$ git add .

# ํŠน์ • ํŒŒ์ผ๋งŒ ์ด๋™ํ•˜๋ ค๋ฉด
$ git add [ํŒŒ์ผ๋ช…]
$ git add src/main/resources/index.js

 

reset : ์ž˜๋ชป addํ•œ ํŒŒ์ผ ๋‹ค์‹œ ๋‚ด๋ฆฌ๊ธฐ

  • HEAD : ๋ธŒ๋žœ์น˜๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐ€์žฅ ์ตœ์‹  ์ƒํƒœ์˜ commit. 
$ git reset HEAD [ํŒŒ์ผ๋ช…]

 

commit : push ์ „ ํŒŒ์ผ ์—…๋กœ๋“œ

$ git commit -m '[๋ฉ”์‹œ์ง€]'
๋”๋ณด๊ธฐ

Commit ๋ฉ”์‹œ์ง€๋Š” ํŒ€๋ณ„ Git ์ปจ๋ฒค์…˜์— ์ •์˜๋œ ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ ์ž‘์„ฑ

 

์˜ˆ์‹œ : [<type>/<scope>] <subject>

  • type : commit keyword
    • feat : ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ
    • enhance : ๊ธฐ๋Šฅ ๊ฐœ์„ 
    • fix : ๋ฒ„๊ทธ ์ˆ˜์ •
    • hotfix : ๊ธ‰ํ•œ ์ด์Šˆ์— ๋Œ€ํ•œ ์ˆ˜์ •
    • chore : ์ž์ž˜ํ•œ ์ˆ˜์ •์ด๋‚˜ ๋นŒ๋“œ ์—…๋ฐ์ดํŠธ
    • docs : ๋ฌธ์„œ ์ž‘์—…
    • refactor : ๋ฆฌํŒฉํ† ๋ง
    • config : ํ”„๋กœ์ ํŠธ ํ™˜๊ฒฝ ์„ค์ •
    • test : ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ๊ฐœ๋ฐœ
  • scope : ๋ณ€๊ฒฝ์— ๋Œ€ํ•œ ํŠน์ • ์œ„์น˜ (ex. gitlab issue number)
  • subject : ๋ณ€๊ฒฝ ๋‚ด์šฉ ์ฃผ์ œ (= ์ž‘์„ฑํ•˜๊ณ  ์‹ถ์€ ๋‚ด์šฉ)

 

ex. [feat/#1] ์‚ฌ์šฉ์ž ์š”์ฒญ ํ—ค๋”์˜ JWT ํ† ํฐ ๊ฒ€์ฆ ๋ฐฉ์‹ ๋ณ€๊ฒฝ

 

push : commitํ•œ ๋‚ด์šฉ branch์— ํŒŒ์ผ ์—…๋กœ๋“œ

$ git push

 

merge : ๊ฐ ๋ธŒ๋žœ์น˜์—์„œ ์ž‘์—…ํ•œ ๋‚ด์šฉ์„ ๋ณ‘ํ•ฉ

  • ์•„๋ž˜ ์˜ˆ์‹œ์ฒ˜๋Ÿผ ์‚ฌ์šฉ ์‹œ feat-1 ๋ธŒ๋žœ์น˜์˜ ๋‚ด์šฉ์ด dev ๋ธŒ๋žœ์น˜๋กœ merge๋จ. → ์ผ๋ฐ˜์ ์œผ๋กœ merge ์ถฉ๋Œ ์šฐ๋ ค, ํ˜‘์—… ์‹œ ๋‚ด์šฉ ํ™•์ธ์„ ์œ„ํ•ด ๊ฐ ์ž‘์—… ๋ธŒ๋žœ์น˜๋กœ commit-push ํ›„ github/gitlab์—์„œ merge request(mr) ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ์‹ ์‚ฌ์šฉ
# ๋ณ‘ํ•ฉํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฉ”์ธ ๋ธŒ๋žœ์น˜๋กœ ์ด๋™
$ git checkout dev

# ์ž‘์—…ํ•œ ๋ธŒ๋žœ์น˜ ๋‚ด์šฉ์„ ๋ณ‘ํ•ฉ
$ git merge feat-1

 

pull : ์›๊ฒฉ ์ €์žฅ์†Œ(git branch) ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ์ปฌ ์ €์žฅ์†Œ์— ๋ฐ›์•„์˜ด

$ git pull

# Already up to date : ์ด๋ฏธ ์ตœ์‹ ํ™” ๋œ ์ƒํƒœ

 

diff : ์ˆ˜์ •๋œ ํŒŒ์ผ ๋‚ด์šฉ ํ™•์ธ

$ git diff

 

 


 

log : commit history ํ™•์ธ

$ git log

commit 927228abd878da79c34161ae8543e2c59dec4cc0 (HEAD -> test, origin/design/4)
Author: ID <์ด๋ฉ”์ผ์ฃผ์†Œ>
Date:   Mon Feb 3 16:03:34 2025 +0900

    [feat/#4] ๊ณตํ†ต ์ปดํฌ๋„ŒํŠธ ๊ฐœ๋ฐœ (ํ—ค๋”, ํ‘ธํ„ฐ, ์‚ฌ์ด๋“œ๋ฐ”)

commit be0b2a955d39151718e37b230edd76e1ef3ad69f
Author: ID <์ด๋ฉ”์ผ์ฃผ์†Œ>
Date:   Mon Feb 3 14:52:25 2025 +0900

    [fix/#4] ๋ชจ๋ฐ”์ผ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์ด๋“œ๋ฐ” ์ถœ๋ ฅ ์‹œ ์‚ฌ์ด๋“œ๋ฐ” ์ž˜๋ฆผ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ
# log history ์‹œ์ ์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
$ git checkout 927228abd878da79c34161ae8543e2c59dec4cc0

 

cherry-pick : ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜์— ์žˆ๋Š” ์ปค๋ฐ‹์„ ๊ฐ€์ ธ์˜ด

  • ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜์— ์ž˜๋ชป ์ปค๋ฐ‹ํ•˜๊ฑฐ๋‚˜, ํ•„์š” ์—†๋Š” ์ปค๋ฐ‹์ด ์ƒ๊ธฐ๋Š” ๋“ฑ ์ปค๋ฐ‹๋œ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ์™€์•ผ ํ•  ๋•Œ ์‚ฌ์šฉ
    1. ์•ˆ์ •์„ฑ์ด ๋ณด์žฅ๋˜์ง€ ์•Š์€ ์ปค๋ฐ‹์€ ์ œ์™ธํ•˜๊ณ  ๋‚˜๋จธ์ง€ ์ปค๋ฐ‹์„ ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ
    2. Hotfix ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•œ ์ฝ”๋“œ๊ฐ€ ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜์— ์žˆ๋Š”๋ฐ, ํ•ด๋‹น ๋ฒ„๊ทธ ์ˆ˜์ • ์ฝ”๋“œ ์ปค๋ฐ‹๋งŒ ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ
# ์ปค๋ฐ‹ID๋Š” git log์˜ HASH๊ฐ’. ํ’€ID๋กœ ์ž‘์„ฑํ•˜๊ฑฐ๋‚˜, ์•ž 6์ž๋ฆฌ ์‚ฌ์šฉ
# cherry-pick์„ ์‹คํ–‰ํ•  ๋ธŒ๋žœ์น˜๋กœ ๋จผ์ € checkout ํ•ด์•ผ๋จ
$ git cherry-pick <์ปค๋ฐ‹ID> <์ปค๋ฐ‹ID> ...
# ์ถฉ๋Œ๋‚œ ๋ถ€๋ถ„์„ ํ•ด๊ฒฐํ•œ ํ›„, ์‹คํ–‰ํ•˜๋ฉด ์ฒด๋ฆฌํ”ผํ‚น์ด ๋งˆ๋ฌด๋ฆฌ
$ git cherry-pick --continue

# ์ถฉ๋Œ๋‚œ ์ปค๋ฐ‹์€ ์ œ์™ธํ•˜๊ณ  ์ฒด๋ฆฌํ”ผํ‚น
$ git cherry-pick --skip

# cherry-pick ์‹คํ–‰ํ•˜๊ธฐ ์ „์œผ๋กœ ๋Œ์•„๊ฐ
$ git cherry-pick --abort
728x90
320x100