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 : ๋ค๋ฅธ ๋ธ๋์น์ ์๋ ์ปค๋ฐ์ ๊ฐ์ ธ์ด
- ๋ค๋ฅธ ๋ธ๋์น์ ์๋ชป ์ปค๋ฐํ๊ฑฐ๋, ํ์ ์๋ ์ปค๋ฐ์ด ์๊ธฐ๋ ๋ฑ ์ปค๋ฐ๋ ์ฝ๋๋ฅผ ๊ฐ์ ธ์์ผ ํ ๋ ์ฌ์ฉ
- ์์ ์ฑ์ด ๋ณด์ฅ๋์ง ์์ ์ปค๋ฐ์ ์ ์ธํ๊ณ ๋๋จธ์ง ์ปค๋ฐ์ ๊ฐ์ ธ์ค๊ณ ์ถ์ ๊ฒฝ์ฐ
- 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
'๐ฌ CI ยท CD > Git : ๊น' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Git] Sourcetree ์ฌ์ฉ๋ฒ (์ค์น, Clone) (0) | 2025.03.12 |
---|---|
[Github] VSCode์์ Github๋ก Commit, Pushํ๊ธฐ (0) | 2024.08.30 |
[GitLab] CentOS 7์ GitLab (ce) ์ค์นํ๊ธฐ - ์คํ๋ผ์ธ(์๋) ์ค์น (0) | 2023.04.11 |
[GitLab] CentOS 7์ GitLab (ce) ์ค์นํ๊ธฐ - curl/yum ์ด์ฉํ ์จ๋ผ์ธ ์ค์น (0) | 2023.04.10 |
[GitLab] Linux CentOS 8 ํ๊ฒฝ GitLab ์ค์น ๋ฐ ๊ธฐ๋ (0) | 2023.02.10 |